-Z (CODE) INTVEC=40000000-4000003F
// Код запуска и подпрограммы исключительной ситуации (ICODE). //*****************************************^
-Z (CODE) ICODE, DIFUNCT=ROMSTART-ROMEND
-Z (CODE) SWITAB=ROMSTART-ROMEND //******************************************^
// Сегменты кода могут быть помещены где-либо в свободной области памяти, /у********************************************************
-Z (CODE) CODE=ROMSTART-ROMEND //******************************************^
// Первоначальное местоположение ROM для скопированного и выполняемого в RAM
// кода _ ramfunc
//.
//*****************************************^
-Z (CONST) CODE_ID=ROMSTART-ROMEND //********************************************^
// Различные константы и инициализаторы. //*******************************************^
- Z (CONST) INITTAB, DATA_ID, DATA_C=ROMSTART - ROMEND -Z (CONST) CHECKSUM=ROMSTART-ROMEND //*******************************************^
// Сегменты для чтения - записи, отображенные в RAM. //********************************************************
-DRAMSTART=40000040 -DRAMEND=40003FFF
//*******************************************^ // Сегменты данных.
//******************************************^
-Z(DATA)DATA_I,DATA_Z,DATA_N=RAMSTART-RAMEND //******************************************^
11 _ ramfunc код, скопированный и выполняемый в RAM. //******************************************^
-Z (DATA) CODE_I=RAMSTART-RAMEND
// ICCARM генерирует код для функции _ ramfunc всегменте C0DE_I. Опция -Q
// командной строки XLINK переориентирует XLINK, чтобы вместо него задать
// сегмент CODE_ID, но сохранять символьную и отладочную информацию,
// связанную с сегментом CODE_I, где выполняется код. //*******************************************
-QCODE_I=CODE_ID
//*******************************************************
// Стек и сегменты динамической памяти. (Обратите внимание на маленький стек // для мобильности отладки)
//*******************************************^
-D_CSTACK_SIZE=200
// -D_SVC_STACK_SIZE=10
-D_IRQ_STACK_SIZE=100
-D_HEAP^SiZE=200
-Z(DATA)CSTACK+_CSTACK_SIZE=RAMSTART-RAMEND
// -Z(DATA)SVC_STACK+_SVC_STACK_SIZE=RAMSTART-RAMEND
-Z(DATA)IRQ_STACK+_IRQ_STACK_SIZE,HEAP+_HEAP_SIZE=RAMSTART-RAMEND //****************************************^
// Поддержка ELF/DWARF.
//*****************************************************
//-Felf
Как можно видеть из текстов файлов, в файле LPC2129_FLASH.xcl объявленные адреса границ постоянной памяти ROM (ROMSTART и ROMEND) «покрывают» всю имеющуюся встроенную Flash-память микроконтроллера, в то время как в файле LPC2129_ SRAM.xcl эти значения указывают на адресное пространство SRAM (см. главу 2 «Организация системной памяти»). В файле LPC2129_FLASH.xcl объявленные адреса границ оперативной памяти RAM (RAMSTART и RAMEND) «покрывают» всю имеющуюся встроенную оперативную память микроконтроллера, в то время как в файле LPG2129_ SRAM.xcl из объявленных границ RAM исключена область, отведенная в реальной встроенной RAM под вектора сброса и исключительной ситуации (INTVEC).
| НА ГЛАВНУЮ | | ЧТО ТАКОЕ PIC ? | | ПРОГРАММАТОР | | ПРОЕКТЫ | | СТАТЬИ | | ССЫЛКИ | | КАРТА САЙТА |