_sConfig, _eConfig - это разыменованный объект памяти. Размер ему - 0 байт, так что это не указатель. А ты его приводишь к указателю, вот и получаешь шит.
Использовать сишный код для инициализации данных - антру. В армовском асме - это 4 инструкции с переходом по условию, в тамбовском - 5 (но по 2 байта, итого - 10), добавляется дополнительная itt
>_sConfig, _eConfig - это разыменованный объект памяти. Размер ему - 0 байт, так что это не указатель. А ты его приводишь к указателю, вот и получаешь шит.
Не спорю. Изначально было про то, что компилятор разруливает обе инструкции не всегда "правильно".
Про антру и код вообще ничего не понял. Можешь пояснить?
Comments 12
Гранит, не?
Reply
Reply
Reply
Здесь всё проще: купил на уделке за 200 р. "сигнализатор-индикатор мощности гамма-излучения СИМ-03".
Хочу проверить. Так-то он 1500-2000 стоит :).
Reply
Отпишу сюда по поводу сишной инициализации и линкер-скриптов:
http://technoblog.vshmuk.ru/index.php/2012/04/27/c#feedbacks
_sConfig, _eConfig - это разыменованный объект памяти. Размер ему - 0 байт, так что это не указатель. А ты его приводишь к указателю, вот и получаешь шит.
Использовать сишный код для инициализации данных - антру. В армовском асме - это 4 инструкции с переходом по условию, в тамбовском - 5 (но по 2 байта, итого - 10), добавляется дополнительная itt
ldr r0, =_etext
ldr r1, =_data
ldr r2, =_edata
data_loop:
cmp r1, r2
ittt lo
ldrlo r3, [r0], #4
strlo r3, [r1], #4
blo data_loop
К тому же это работает в четыре (!) раза быстрее, потому как данные считываются/записываются словами, а не байтами.
Reply
Не спорю. Изначально было про то, что компилятор разруливает обе инструкции не всегда "правильно".
Про антру и код вообще ничего не понял. Можешь пояснить?
Reply
Leave a comment