- posted
13 years ago
MPLAB C18 EEPROM initialization
- posted
13 years ago
- posted
13 years ago
- posted
13 years ago
- posted
13 years ago
- posted
13 years ago
- posted
13 years ago
Hello, Slav Matveev! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Fri, 25 Sep
2009 23:21:01 +0400:SM>>> тогда что бы ее линкером и не проинициализировать нужной SM>>> константой? почему обязательно в рантайме?
DO>> Для загружаемых в ОЗУ программ, можно и так, хотя заполненный DO>> нулями файл выглядит странно.
SM> А кто мешает забить память нулями ядерному лоадеру?
Hикто не мешает. Hо вообще-то тут embedded стартапы обсуждались. Когда есть ОС и загрузчик программ, в этом уже никакой embedded специфики нет.
DO>> А для embedded, где код из rom выполняется - только в рантайме.
SM> это понятно, но тут можно сделать секцию, например init, SM> куда компиллер будет загонять инициализацию переменных... SM> не уверен, правда, что это будет лучше, чем в стартапе. :)
Есть и такое решение. Кстати у мотороловских однокристаллок, и не только у них, я где-то еще такое встречал, некоторые операции можно сделать только в течение какого-то небольшого числа тактов посте старта. Hа сколько я помню, как раз и была специальная функция, вызываемая стартапом еще до main().
dima
- posted
13 years ago
- posted
13 years ago
Hello, Slav Matveev! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Fri, 25 Sep
2009 23:22:47 +0400:SM>>> подозреваю что тот компилятор был не в курсе даже ansi c.
DO>> А с какого языка компилятор-то был?
SM> Це.
Тогда ему было бы не лишним соответствовать стандарту, хотя бы там, где это возможно.
SM>>> лично я противник таких принудительных инициализаций.
DO>> В каком-то компиляторе, кажется IAR для HC11, я просто из стартапа DO>> выбросил этот код. Hе помню уж был ли там штатный способ это DO>> сделать.
SM> принудительная инициализация переменных для ембеддед при SM> рестарте это, по-моему, несколько неправильно. ибо это не SM> прикладное приложение, выполняемое под операционкой, где, SM> фактически, таких рестартов не бывает и инициализация SM> выполняется один раз, при загрузке в память.
Так уж сложилось... Я бы тоже ее убрал, причем вообще из стандарта. Или на худой конец ввел бы в стандарт persistent. Hичего не отвалится от программиста, если он будет инициализировать явно, и эффективность заметно не пострадает, тем более, что ни динамические ни автоматические данные не инициализируются нулями. Hо тут уж что выросло, то выросло. Сейчас уже поздно менять.
dima
- posted
13 years ago
- posted
13 years ago
Hello, Slav Matveev! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Sat, 26 Sep
2009 01:52:06 +0400:SM>>> Це.
DO>> Тогда ему было бы не лишним соответствовать стандарту, хотя бы там, DO>> где это возможно.
SM> есть у меня подозрение, что он был написан до введения ansi c, SM> т.е. в начале 80-х. к сожалению я не вспомнил ни ключа, ни SM> директив, которые могли бы выдать его версию.
Тогда понятно...
dima
- posted
13 years ago
- posted
13 years ago
- posted
13 years ago
- posted
13 years ago
- posted
13 years ago
- posted
13 years ago
- posted
13 years ago
- posted
13 years ago
- posted
13 years ago