Когда я компилирую свой код, я в итоге получаю Motorola S записей ( a.mot ) с пробелами (весь диапазон адресов не покрывается кодом и данными).
Я хочу заполнить эти пробелы шаблоном 0x01 0x80
. Однако важно, чтобы все двухбайтовые пары начинались с четных адресов. 0x0180
- это код операции с моего микро, который я хочу выполнить, если ПК достигает адреса неиспользуемой области флэш-памяти.
Прежде чем вы начнете отвечать, я хотел бы сообщить вам, что -repeat-data в srec_cat имеет проблему:
- Учитывая два раздела, например C и D помещаются один за другим ( D после C ) в адресном пространстве.
- Учитывая, что последний байт секции C заканчивается на адресе
0x76
, а первый байт секции D находится на адресе 0x78
. Другими словами, между ними есть адресный байт длиной 1 байт.
При таких условиях, если я использую опцию -repeat-data 0x01 0x80
, srec cat заполнит этот байт 0x01
и начнет заполнять следующий пробел с 0x80
.
Я не знаю размеров этих разделов, потому что линкер обрабатывает их.