- posted
13 years ago
MPLAB C18 EEPROM initialization
- posted
13 years ago
Hello, Slav Matveev! You wrote in conference fido7.ru.embedded to Alexander Torres on Sat, 26 Sep
2009 17:41:59 +0400:AT>> Во вторых - кто сказал что там будет именно 00 или FF ?! AT>> Там при включении может быть что угодно.
SM> какая разница что там при включении если ты переменную SM> инициализируешь? SM> А когда инициализируешь, какая разница что записывать SM> начальным значением: ноль или не ноль?
Да никакой, обсуждать стандарт конечно можно, но он от этого не изменится. Потому лучше иметь это в виду и знать как обходить, когда это нужно.
dima
- 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 Nickita A Startcev on Sat, 26 Sep 2009 22:48:44 +0400:
NS>> нулём переменные выделяются в отдельную секцию BSS, которая обычно NS>> не хранится на диске, а зануляется в процессе загрузки.
SM> почему бы эту секцию не обнулять ядерным загрузчиком, а не в SM> стартапе?
А он (загрузчик) это умеет? Последний компьютерный (не embedded) стартап, что я видел, был для ДОС и там bss обнулялся в стартапе, и я уже плохо помню формат .exe (хотя когда-то и писал загрузчик таких файлов), но кажется там тоже не было предусмотрено возможности указывать какую область обнулять загрузчику.
dima
- posted
13 years ago
Hello, Slav Matveev! You wrote in conference fido7.ru.embedded to Alexander Torres on Sat, 26 Sep
2009 23:02:28 +0400:SM>>> какая разница что там при включении если ты переменную SM>>> инициализируешь?
AT>> Hикакой, но ты ведь предлагаешь ее _не_ инициализировать.
SM> у тебя буйная фантазия.
SM> g: SM> .zero 4
SM> .comm g,4,4
SM> в чем глубокая разница между первым и вторым?
А хрен его знает. Буквы разные, а что они означают, лично я понятия не имею.
SM> ps. я вообще-то спрашивал что такое bss и нафига оно нужно.
Тебе уже ответили. Сегмент для размещения статических неинициализированных переменных, обнуляемый стартапом в соответствии со стандартом.
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
Hello, Slav Matveev! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Sun, 27 Sep
2009 02:57:25 +0400:SM>>> почему бы эту секцию не обнулять ядерным загрузчиком, а не в SM>>> стартапе?
DO>> А он (загрузчик) это умеет? Последний компьютерный (не embedded) DO>> стартап, что я видел, был для ДОС и там bss обнулялся в стартапе, и DO>> я уже плохо помню формат .exe (хотя когда-то и писал загрузчик DO>> таких файлов), но кажется там тоже не было предусмотрено DO>> возможности указывать какую область обнулять загрузчику.
SM> 02 .bss VirtSize: 00001438 VirtAddr: 00007000 raw data offs: SM> 00000000 raw data size: 00001600 relocation offs: 00000000 SM> relocations: 00000000 line # offs: 00000000 line #'s: SM> 00000000 characteristics: C0000080
Что это за абракадабра и зачем она тут?
SM> если загрузчик знает о существовании такой секции, то SM> теоретически он может ее и проинициализировать.
Тогда теоретически можно сэкономить несколько команд в стартапе.
dima
- posted
13 years ago
- posted
13 years ago
Hello, Nickita A Startcev! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Sun, 27 Sep
2009 11:33:50 +0400:DO>> Последний компьютерный (не embedded) DO>> стартап, что я видел, был для ДОС и там bss обнулялся в стартапе, и DO>> я уже плохо помню формат .exe (хотя когда-то и писал загрузчик DO>> таких файлов), но кажется там тоже не было предусмотрено DO>> возможности указывать какую область обнулять загрузчику.
NAS> Есть. можно. Можно указать секцию, которая занимает 0 байт в файле NAS> и N байт в памяти. Да, это ради экономии места на диске.
А она обнулялась? Впрочем, какое это сейчас имеет значение.
dima
- posted
13 years ago
- posted
13 years ago
- posted
13 years ago