Сообщение 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).
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).
SIG>>>Если ты так в embedded напишешь, то линкер эти твои нули засунет в ПЗУ, занимая там место, а стартап-код будет заботливо копировать в ОЗУ. Возможно дважды, как в STM32
vsb>>Это понятно но это текущая кривая реализация. Ничего не мешает такие переменные сувать в bss, а неинициализированные ещё куда.
M>В bss как раз неинициализированные суются. Ты, кстати, под STMку в чем разрабатываешь?
Блин, сто раз уже написали — нет в С неинициализированных глобальных переменных. Только локальные. bss обнуляется на старте, точка. Ты вроде в С спец, должен это лучше меня знать. Можно удалить из стартапа этот код обнуления, можно не вызывать libc _start, тогда не будет обнуляться, но это уже не соответствует тому, что требует стандарт.
Под vscode. Не совсем под STM, под её китайский перепев (GD32).