MPLAB C18 EEPROM initialization

Reply to
Nickita A Startcev
Loading thread data ...
Reply to
Dimmy Timchenko
Reply to
Alex Mogilnikov

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

formatting link

Reply to
Dmitry Orlov

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

formatting link

Reply to
Dmitry Orlov
Reply to
Dimmy Timchenko

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

formatting link

Reply to
Dmitry Orlov
Reply to
Alexander Torres
Reply to
Nickita A Startcev
Reply to
Alexander Torres
Reply to
Nickita A Startcev
Reply to
Nickita A Startcev
Reply to
Alexander Konosevich

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.