На выходе есть бинарник, только он в HEX формате, не совсем подходит
нам нужно его в BIN формат преобразовать
1. В наборе с SDCC есть утилита makebin но она мягко говоря странная поэтому мы о ней сразу забываем
Нам нужен нормальный hex2bin брать тут
http://gnuwin32.sourceforge.net/packages/hex2bin.htmНам нужно его где то разместить, можно сделать как я, создал себе каталог с утилитами и прописал его в PATH операционки
Можно просить его в папку Windows или Windows/System32 или в каталог bin к SDCC тем самым разводя срач, на ваше усмотрение в общем
Главное что бы из запущенной консоли был доступ к bin2hex
2. Нужно теперь указать что после успешной сборки нужно запустить утилиту bin2hex
Для этого на проекте жмем правой кнопкой -> Build options...
В диалоге настроек сборки есть вкладка "Pre/Post build steps" нужно в post build steps указать hex2bin -e bin $(PROJECT_DIR)$(TARGET_OUTPUT_FILE)
Все после сборки будет готовый bin файл с нужными байтам
3.Бинарный бинарник это уже шаг вперед, но с ним что то сделать надо, можно его в образ диска закинуть и запустить лоадером, но цель выше - нужен SPG
Для этого нужно 2 утилиты, приложены вложением, одна пакует файлы вторая собирает spg файлы, ложим их по соседству с hex2bin что бы были доступны из консоли
Теперь нужно задать правила сборки SPG файла
Для этого в корне проекта нужно создать файл к примеру
spg.iniсодержимое следующее
- Code: Select all
Desc = SDCC DEMO
Start = 0x4000
Stack = $BFFF
Resident = #5B00
Page3 = 0
; CPU clock: 0 - 3,5MHz / 1 - 7MHz / 2 - 14MHz / 3 - 14+MHz
Clock = 3
; INT: 0 - DI / 1 - EI
INT = 1
Pager = 0
; Blocks description: address (512 multiple, #C000-#FE00), page number, filename
Block = #C000, 5, bin\debug\test.bin
Автоматизации тут пока нет, будем думать, опишу что нужно под себя прописать
Start= тут тоже самое что и прописано было линкеру в --code-loc
Stack= тут адрес стека, по хорошему то же самое что и crt0.s в строке "ld sp,#BFFF"
Blocks = #C0000 это значит писать с нулевого смещения в страницу 5, станица 5 в тоге окажется на своем месте после загрузки то есть по адресу 0x4000, далее пути до папки сборки
Теперь нужно дописать строку в post build steps
строка следующая: spgbld -b spg.ini out.spg
После сборки в корне проекта появится out.spg который может запускать эмулятор TS-Conf
KOE сказал заработает, значит заработает. Он кандидат наук, а не радиолюбитель. (c) alone