Информация об изменениях

Сообщение Re[8]: Самый низкоуровневый язык, ага от 27.09.2023 19:01

Изменено 27.09.2023 19:09 vsb

Re[8]: Самый низкоуровневый язык, ага
Здравствуйте, Marty, Вы писали:

SIG>>>Если ты так в embedded напишешь, то линкер эти твои нули засунет в ПЗУ, занимая там место, а стартап-код будет заботливо копировать в ОЗУ. Возможно дважды, как в STM32


vsb>>Это понятно но это текущая кривая реализация. Ничего не мешает такие переменные сувать в bss, а неинициализированные ещё куда.


M>В bss как раз неинициализированные суются. Ты, кстати, под STMку в чем разрабатываешь?


Блин, сто раз уже написали — нет в С неинициализированных глобальных переменных. Только локальные. bss обнуляется на старте, точка. Ты вроде в С спец, должен это лучше меня знать. Можно удалить из стартапа этот коду обнуления, можно не вызывать libc _start, тогда не будет обнуляться, но это уже не соответствует тому, что требует стандарт.

Под vscode. Не совсем под STM, под её китайский перепев (GD32).
Re[8]: Самый низкоуровневый язык, ага
Здравствуйте, Marty, Вы писали:

SIG>>>Если ты так в embedded напишешь, то линкер эти твои нули засунет в ПЗУ, занимая там место, а стартап-код будет заботливо копировать в ОЗУ. Возможно дважды, как в STM32


vsb>>Это понятно но это текущая кривая реализация. Ничего не мешает такие переменные сувать в bss, а неинициализированные ещё куда.


M>В bss как раз неинициализированные суются. Ты, кстати, под STMку в чем разрабатываешь?


Блин, сто раз уже написали — нет в С неинициализированных глобальных переменных. Только локальные. bss обнуляется на старте, точка. Ты вроде в С спец, должен это лучше меня знать. Можно удалить из стартапа этот код обнуления, можно не вызывать libc _start, тогда не будет обнуляться, но это уже не соответствует тому, что требует стандарт.

Под vscode. Не совсем под STM, под её китайский перепев (GD32).