Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Значит так. ключевые слова- XCL файл линкера, С_startup и т.п.

Отправлено Неспящие с Трезором 19 ноября 2007 г. 16:51
В ответ на: Если бы кто ее подсказал как его использовать в IAR?(+) отправлено misyachniy 19 ноября 2007 г. 16:36

Сначала пишется непосредственно бутлодер. Пишется как обычно, без фокусов, но линкуется подрихтованным xcl-ем. зашивается в чистый камень с установленным фузом Бутресет. Попутно решается вопрос о совместном существовании проги и лодыря -то есть переключении между ними.

вот к примеру хсl для моего лодыря. см ключи -D -Z


// File version: $Revision: 1.10 $
//
// The '_..X_' prefix is used by C-SPY as an indication that the label should
// not be displayed in the dissassembly window.
//

//////////////////////////////////////////////////////////////////////////////
/* Code (flash) segments */
-D_..X_INTVEC_SIZE=8C /* 35 Interrupt vectors * 4 bytes each */
-D_..X_FLASH_TEND=FF /* End of tiny flash memory */
-D_..X_FLASH_NEND=FFFF /* End of near flash memory */
-D_..X_FLASH_END=FFFF /* End of flash memory */
/* Internal data memory */
/* Change the two lines below to 60(BASE) and FF(TEND)
* if you are running in "mega103 mode" */
-D_..X_SRAM_BASE=100 /* Start of ram memory */
-D_..X_SRAM_TEND=100 /* End of tiny ram memory */

-D_..X_SRAM_END=10FF /* End of ram memory */
/* Internal EEPROM */
-D_..X_EEPROM_END=7FF /* End of eeprom memory */
/*==================== END OF CONSTANTS =====================*/

/*
* Modify the lines below to alter the size of the RSTACK, CSTACK and HEAP
* segments. These need to be fine tuned to suit your specific application.
* The '_..X_' prefix is used by C-SPY as an indication that the label should
* not be displayed in the dissassembly window.
*/
-D_..X_CSTACK_SIZE=200 /* 512 bytes for auto variables and saved registers. */
-D_..X_RSTACK_SIZE=40 /* 64 bytes for return addresses, equivalent to 32 */
/* levels of calls, including interrupts. */
-D_..X_HEAP_SIZE=100 /* 256 bytes of heap. */
-D_..X_NEAR_HEAP_SIZE=100 /* 256 bytes of heap. */

/*
* Modify these lines if you have an external SRAM connected to the system.
*
* Note: Remember to turn on the external data and address busses in
* __low_level_init if external memory is used.
*/
-D_..X_EXT_SRAM_BASE=_..X_SRAM_BASE
-D_..X_EXT_SRAM_END=_..X_SRAM_END

/*
* Modify these lines if you have an external EPROM connected to the system.
*
* Note: Remember to turn on the external data and address busses in
* __low_level_init if external memory is used.
*/
-D_..X_EXT_EPROM_BASE=_..X_SRAM_BASE
-D_..X_EXT_EPROM_END=_..X_SRAM_END

/*
* Modify these lines if you have an external EEPROM connected to the system.
*
* Note: Remember to turn on the external data and address busses in
* __low_level_init if external memory is used.
*/
-D_..X_EXT_EEPROM_BASE=_..X_SRAM_BASE
-D_..X_EXT_EEPROM_END=_..X_SRAM_END

/* Define CPU */
-ca90

/*
* The following segments are located in the internal memory of
* the ATmega64. Do not change these lines.
*/


/////////////////////////////////////////////////////////////////////////////////////////
-D_..X_SMALLBOOTSTART=F800
-D_..X_BootCodeStrt=F88C
-D_..X_BootVectEnd=F88B


/* Code memory */
-Z(CODE)INTVEC=_..X_SMALLBOOTSTART-_..X_BootVectEnd

/* Fill unused interrupt vector's with RETI */
//-H1895
//-h(CODE)0-_..X_INTVEC_SIZE

//-Z(CODE)TINY_F=_..X_BootCodeStrt-_..X_FLASH_TEND
-Z(CODE)NEAR_F,SWITCH,INITTAB,DIFUNCT=_..X_BootCodeStrt-_..X_FLASH_END
-Z(CODE)CODE=_..X_BootCodeStrt-_..X_FLASH_END
//-Z(CODE)TINY_ID=_..X_BootCodeStrt-_..X_FLASH_END
-Z(CODE)NEAR_ID=_..X_BootCodeStrt-_..X_FLASH_END
-Z(CODE)CHECKSUM#_..X_FLASH_END

/* Internal data memory */
-Z(DATA)TINY_I,TINY_Z,TINY_N=_..X_SRAM_BASE-_..X_SRAM_TEND
-Z(DATA)NEAR_I,NEAR_Z=_..X_SRAM_BASE-_..X_SRAM_END,_..X_EXT_SRAM_BASE-_..X_EXT_SRAM_END

/*
* If external SRAM is available it is possible to place the stacks there.
* However, the external memory is slower than the internal so moving the
* stacks to the external memory will degrade the system performance.
*/
-Z(DATA)RSTACK+_..X_RSTACK_SIZE=_..X_SRAM_BASE-_..X_SRAM_END /* ,_..X_EXT_SRAM_BASE-_..X_EXT_SRAM_END */
-Z(DATA)CSTACK+_..X_CSTACK_SIZE=_..X_SRAM_BASE-_..X_SRAM_END /* ,_..X_EXT_SRAM_BASE-_..X_EXT_SRAM_END */

/*
* If external SRAM is available it might be a good idea to move the
* heap segment there, i.e. remove the _..X_SRAM_BASE-_..X_SRAM_END range.
*/
-Z(DATA)HEAP+_..X_HEAP_SIZE=_..X_SRAM_BASE-_..X_SRAM_END,_..X_EXT_SRAM_BASE-_..X_EXT_SRAM_END
-Z(DATA)IOSTREAM_N#_..X_SRAM_BASE-_..X_SRAM_END,_..X_EXT_SRAM_BASE-_..X_EXT_SRAM_END
-Z(DATA)NEAR_HEAP+_..X_NEAR_HEAP_SIZE=_..X_SRAM_BASE-_..X_SRAM_END,_..X_EXT_SRAM_BASE-_..X_EXT_SRAM_END

/* Internal eeprom memory */
-Z(XDATA)EEPROM_I,EEPROM_N=0-_..X_EEPROM_END

/*
* The following segment definitions are only used if external memory is
* connected to the AVR controller.
*/

/* External EPROM */
-Z(CONST)NEAR_C=_..X_EXT_EPROM_BASE-_..X_EXT_EPROM_END

/* External EEPROM */
-Z(DATA)NEAR_N=_..X_EXT_EEPROM_BASE-_..X_EXT_EEPROM_END

/* Select reduced "printf" support to reduce library size.
See configuration section in manual concerning printf/sprintf. */

/*Dlib*/
-e_PrintfSmall=_Printf

/*Clib*/
-e_small_write=_formatted_write
-e_small_write_P=_formatted_write_P

/* Disable floating-point support in "scanf" to reduce library size.
See configuration section in manual concerning scanf/sscanf */

/*Dlib*/
-e_ScanfSmall=_Scanf

/*Clib*/
-e_medium_read=_formatted_read
-e_medium_read_P=_formatted_read_P

/* Suppress one warning which is not relevant for this processor */
-w29

/* Code will now reside in file aout.a90 or aout.d90, unless -o is specified */
/* .d90 is the default if debug system is linked (option -r) */
/* .a90 is the default without debugging. Default format is -Fmotorola */



Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
умножьте 3 на единицу:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru