Столкнулся с такой фишкой в 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...




Ответить с цитированием