ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
13 июля
457904 Топик полностью
Точка опоры (28.10.2013 23:16, просмотров: 40) ответил fk0 на Как в gcc положить код в определённую секцию? Оптом и желательно без модификации исходников (дописывания __attribute__("section")).
Для непрофессиональных контроллеров семейства AVR сделал через makefile: # Загрузчик - в начале памяти сидит и "отражает" таблицу прерываний # начиная с адреса (словного) 0x160. Также - имеется пять точек входа: # в автомат загрузчика - waitcmd; # в настройку программного УАПП - u_init; # в функцию ожидания готовности передатчика (дублируется битом и прерыванием # OCF0A) - TXcomplete; # в функции приёма и инициации передачи байта - putc и getc. # Оригинальная конструкция вместо 0x0160 такова (значение boot_end и пр. # также см. в h-файле): boot_end+PAGESIZE-(boot_end%PAGESIZE) LDFLAGS += -Ttext 0x02C0 LDFLAGS += -Wl,--defsym=IAP_call=.... LDFLAGS += -Wl,--defsym,IAP_UART_init=.... LDFLAGS += -Wl,--defsym=IAP_UART_TXcomplete=.... LDFLAGS += -Wl,--defsym=IAP_UART_put_byte=.... LDFLAGS += -Wl,--defsym=IAP_UART_get_byte=.... К началу памяти ATtiny "гвоздями прибит" загрузчик на ассемблере. Написанный на Си код размещается сразу после него (выровнен кратно PAGESIZE).
Заказать импортные ЭК - https://shop.fulcrum.ru/buy