swisst 0 24 ноября, 2010 Опубликовано 24 ноября, 2010 · Жалоба Доброго времени суток ! 1. Подскажите как разместить переменную в памяти программы ? [разобрался] под С51 было так... const uint8_t code var_name; сейчас достаточно так... const uint8_t var_name; ____________________________________________________________________ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 24 ноября, 2010 Опубликовано 24 ноября, 2010 · Жалоба А static const uint8_t var_name; работает? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
toweroff 1 24 ноября, 2010 Опубликовано 24 ноября, 2010 · Жалоба unsigned int const my_variable = 0x55555555; если нужно по конкретному адресу, то, например, так: unsigned int const secure __attribute__((at(0x1FC))) = 0x43218765; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
swisst 0 24 ноября, 2010 Опубликовано 24 ноября, 2010 · Жалоба ничего из предложенного не работает - переменная в секции .constdata, тип -data... ЗЫ по конкретному адресу размещает - с этим вопросов нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 24 ноября, 2010 Опубликовано 24 ноября, 2010 · Жалоба переменная в секции .constdata, тип -data... Не уверен, что это означает, что переменная размещена в ОЗУ. Но я в этом небольшой специалист. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
swisst 0 24 ноября, 2010 Опубликовано 24 ноября, 2010 · Жалоба Судя по всему тему создал с горяча... const uint8_t Symbol[10] = {SYMBOL_0, SYMBOL_1, SYMBOL_2, SYMBOL_3, SYMBOL_4, SYMBOL_5, SYMBOL_6, SYMBOL_7, SYMBOL_8, SYMBOL_9}; Symbol 0x00000d48 Data 10 indic.o(.constdata) что говорит о том, что массив лежит во флэш и спецификатора const вполне достаточно... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 24 ноября, 2010 Опубликовано 24 ноября, 2010 · Жалоба говорит о том, что массив лежит во флэш и спецификатора const вполне достаточно... для локальных переменных может и не хватить... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
swisst 0 26 ноября, 2010 Опубликовано 26 ноября, 2010 · Жалоба Вопрос 2: Аппаратный I2C LPC1114 + EEPROM (AT24C01? например) Вопрос несколько общий - кто поборол и у кого пошлО ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 26 ноября, 2010 Опубликовано 26 ноября, 2010 · Жалоба А чего там бороть-то? Взял пример I2C из папки \arm\examples\NXP\LPC11xx\IAR-LPC-1114-SK в IAR EWARM 5.50.5 и с полпинка завел этот I2C. Правда у меня не EEPROM была подключена, а LCD на PCF8535. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
swisst 0 26 ноября, 2010 Опубликовано 26 ноября, 2010 · Жалоба дык...первым делом - мануал, вторым - примеры NXP...просто так сюда не пишу, в основном - читаю... //===================================================================== void Init_I2C (){ LPC_IOCON->PIO0_4 |= ((1<<0)); //Selects I2C function SCL (open-drain pin) LPC_IOCON->PIO0_5 |= ((1<<0)); //Selects I2C function SDA (open-drain pin) LPC_SYSCON->SYSAHBCLKCTRL |= (1<<5); //Enables clock for I2C LPC_SYSCON->PRESETCTRL |= (1<<1); //De-asserts reset for I2C LPC_I2C->SCLL = 480; LPC_I2C->SCLH = 480; LPC_I2C->CONCLR = ((1<<2) | (1<<3) | (1<<5)); NVIC_EnableIRQ(I2C_IRQn); LPC_I2C->CONSET |= (1<<6); } //================================================================================ ======= void I2C_IRQHandler (){ uint8_t StatValue = LPC_I2C->STAT; test_i2c = StatValue; switch(StatValue){ case 0x08: LPC_I2C->DAT = 0xA1; LPC_I2C->CONCLR |= ((1<<3) | (1<<5)); break; case 0x10: LPC_I2C->DAT = 0xA1; LPC_I2C->CONCLR |= ((1<<3) | (1<<5)); break; case 0x18: LPC_I2C->DAT = 0xFF; break; default: LPC_I2C->CONCLR |= (1<<3); } SW_1_TOG; } проблема состоит в том, что нет я не вижу сигнала START (осцил-ом), но он как-бы есть (test_i2c = 8 - слежу через модбас, зажигается SW_1) - а дальше тишина... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
swisst 0 29 ноября, 2010 Опубликовано 29 ноября, 2010 · Жалоба А чего там бороть-то? Взял пример I2C из папки \arm\examples\NXP\LPC11xx\IAR-LPC-1114-SK в IAR EWARM 5.50.5 и с полпинка завел этот I2C. Правда у меня не EEPROM была подключена, а LCD на PCF8535. если не сложно - прицепите тестовый проект ИАРа START condition увидел...mdk-ARM симулирует...в железе - не работает...все еще нуждаюсь в пинкЕ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
toweroff 1 29 ноября, 2010 Опубликовано 29 ноября, 2010 · Жалоба swisst, а резисторы-то к питанию притянуты? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 29 ноября, 2010 Опубликовано 29 ноября, 2010 · Жалоба если не сложно - прицепите тестовый проект ИАРаНе уверен, что вы сможете это очень просто адаптировать под Keil, но попробуйте. IAR_LPC_1114_SK_I2C_simple.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
swisst 0 30 ноября, 2010 Опубликовано 30 ноября, 2010 · Жалоба swisst, а резисторы-то к питанию притянуты? разумеется - обе линии (и SCL, и SDA)... Не уверен, что вы сможете это очень просто адаптировать под Keil, но попробуйте. спасибо - поковыряю... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 30 ноября, 2010 Опубликовано 30 ноября, 2010 · Жалоба Лень создавать тему, спрошу про LPC111x здесь. Что такое "Unique device serial number for identification" и где его посмотреть, кроме как в разделе "features" user manual'а ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться