Поменялось конечно.
Ветка SDCC для Z80 постоянно улучшается. Уменьшается размер кода и увеличивается оптимизация.
Ссылку, на сравнительную таблицу уже как-то кидал http://sourceforge.net/apps/trac/sdc...%20TODO%20list
Поменялось конечно.
Ветка SDCC для Z80 постоянно улучшается. Уменьшается размер кода и увеличивается оптимизация.
Ссылку, на сравнительную таблицу уже как-то кидал http://sourceforge.net/apps/trac/sdc...%20TODO%20list
да, но как обычно со свободным софтом это бывает, улучшается, но никак не может улучшиться... код он генерит странноватый (или тот, кто писал генерацию имеет мало опыта в прогании на з80, или просто там что-то не так) до сих пор. и сам по себе он ни рыба ни мясо... а вот коммерческий IAR - это ващще другое дело! вот к чему надо стремиться, хотя его развитие кончилось 10 лет назад...
на сайте у valker'а. за что ему спасибо.
вот я не уверен вообще, что "внести изменения" будет хоть сколько-нибудь легко... если вообще возможно.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Народ ну что никто так и не расскажет как оптимально пользовать этот SDCC? Интересует быстрый способ что-то скомпилить и запустить на реале ну или в эмуле ну и конечно релизы как сделать тоже.
Ну тама наскока помню проблемой было перевести выхлоп sdcc в что-то толковое и удобоваримое.
Был такой батничек
Указанную проблему решала утилита ihx2bin, которая перелопачивает *.ihx файл вроде в снапшот( формат однако босяцкий, глазом видно что к чему ). Сорцы есть. Как юзать непомню, нада сорцы ковырять. Ограничения - вроде проблема с компиляцией в страницы нерешена.Код:@sdcc -mz80 -I./inc -I./src --code-loc 0x6010 --stack-loc 0x6000 --no-std-crt0 main.c @if ERRORLEVEL 1 goto SubstErr @ihx2bin ihx2bin.cfg @echo ================== done ================== :SubstErr
Ну и ps: код выдавался страшный по размеру. И из-за отсутствия возможности компилить в страницы и ужасного размера кода ( умудрился более чем на 32к написать ) попытка была оставлена как неперспективная.
Можно получить trd/sna/tap с помощью простой программы на SjASMPlus, в которой будет производиться INCBIN кодового блока. Или снапшот через BIN2SNA: http://zx.pk.ru/showthread.php?t=93
ATW4GS / BIN2SNA / SquareMania <ТИ-3> / Ужасм+
ATM-Turbo 512 v4.50, Commodore 64G + TAC-2, Retro-Bit Super Retro TRIO
Столкнулся с такой фишкой в SDCC:
компилит строку целиком кудато в память, и отправляет её поинтер. А вот что-то на вродеКод:print ("Hello World\r");
генерит что-то вообще страшное... на инициализацию каждого байта уходит примерно 15-17 байт кода на асме...Код:unsigned char string[255]={"Hello World\r"};
а вот если сделать что-то типа функции initarrayпрога ваще умирает нах...Код:(array,"Hello World\r");
мож я что-то не так делаю?
и ещё... из разряда это интересно, но не пытайтесь повторить это дома:
Вот это ваще сказка, кода рождается чуть ли ни на 1,5КбайтаКод:SPI_Send(Address>>24); SPI_Send(Address>>16); SPI_Send(Address>>8); SPI_Send(Address);
Поставил IAR-ку... вешь интересная, но сугубо для Эмбедедов ИМХО, зато поддерживает страницы при правильной настройке.
в ближайшее время попробую чтонить компильнуть в ИАРке, если будет что рассказать - расскажу.Код:/* In this example banks are defined to work with the MMU in cs64180 Banked code area is 4000-7FFF. The physical memory banks starts at 50000 Banks are selected by BBR, here BBR will be 4C,50,54,58... Set the "bank" segments initial_address,size,size*10 */ -b(CODE)CODE=4C4000,4000,40000 /* If using a simple latch to select memory banks: Set the "bank" segments initial_address,size,bankincrement -b(CODE)CODE=4000,4000,10000 banks will be numbered 00,01,02...
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)