реклама на сайте
подробности

 
 
> Ликбез, вопрос к "отцам"
hoggar
сообщение Nov 16 2006, 10:02
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 22
Регистрация: 13-11-06
Пользователь №: 22 246



Только начинаю работать с микроконтроллерами, объясните, пожалуйста, как зашить написанную прогу в камень, что бы получить нормально работающий прошитый проц.
Писал в IAR, проц - philips lps2138.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
IV_K
сообщение Nov 23 2006, 12:38
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 121
Регистрация: 17-06-05
Пользователь №: 6 087



у меня например сделано так..
MEMMAP = 2; /* Remap 64 bytes of int. RAM to 0x00 */

по прерываниям..
кусок из cstartup.s79
__program_start
; ldr pc,[pc,#24] ; Absolute jump can reach 4 GByte
b ?cstartup ; Relative branch allows remap, limited to 32 MByte
; Vectors can be enabled by removing the comments below or by
; using #pragma vector from C code.
org 0x04
b undef_handler
; ldr pc,[pc,#24] ; Branch to undef_handler
org 0x08
b swi_handler
; ldr pc,[pc,#24] ; Branch to swi_handler
org 0x0c
b prefetch_handler
; ldr pc,[pc,#24] ; Branch to prefetch_handler
org 0x10
b data_handler
; ldr pc,[pc,#24] ; Branch to data_handler
org 0x18
b OS_CPU_IRQ_ISR
; ldr pc,[pc,#24] ; Branch to irq_handler
org 0x1c
b OS_CPU_FIQ_ISR
; ldr pc,[pc,#24] ; Branch to fiq_handler

кусок из сишного файла обработчика.

#pragma location="ICODE"
__interwork void undef_handler(void){
__disable_interrupt();
// error("undefined instr");
while (1) {}
}
#pragma location="ICODE"
__interwork void swi_handler(void){
__disable_interrupt();
// error("swi");
while (1) {}
}
#pragma location="ICODE"
__interwork void prefetch_handler(void){
__disable_interrupt();
// error("prefetch abort");
while (1) {}
}
#pragma location="ICODE"
__interwork void data_handler(void){
__disable_interrupt();
// error("data abort");
while (1) {}
}

вроде все работает..
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- hoggar   Ликбез   Nov 16 2006, 10:02
- - COMA   ЦитатаПринципиально доступны два пути программиров...   Nov 16 2006, 10:26
- - IV_K   jtag эмулятор есть? плата какая?   Nov 16 2006, 10:26
- - hoggar   2 COMA спасибо. 2 IV_K все есть, плата - lpc2148 ...   Nov 16 2006, 10:47
- - IV_K   для заливки программы во флеш через jtag надо либо...   Nov 16 2006, 10:54
- - hoggar   Цитатав иаре по умолчанию через j-link default loa...   Nov 16 2006, 11:09
- - hoggar   Цитатав иаре по умолчанию через j-link default loa...   Nov 16 2006, 11:15
- - IV_K   надо, иар сперва грузит в озу загрузчик, а потом з...   Nov 16 2006, 11:57
- - hoggar   т.е. "симпл код" означает, что произойде...   Nov 16 2006, 12:25
|- - IgorKossak   Цитата(hoggar @ Nov 16 2006, 14:25) т.е. ...   Nov 16 2006, 15:26
- - hoggar   для чего нужен CSTACK   Nov 17 2006, 12:07
- - IV_K   для хранения переменных и адресов возврата void fu...   Nov 17 2006, 13:28
- - hoggar   Tакой вопрос, если я размещаю код во флэше, значит...   Nov 22 2006, 18:11
- - hoggar   при попытке проошить возникают проблемы в log окн...   Nov 28 2006, 12:42
- - hoggar   после установки MEMMAP = 1 или MEMMAP = 2 картина...   Nov 28 2006, 14:22
- - hoggar   ниче не понимаю, никак не могу войти в прерывание....   Dec 1 2006, 17:13
- - IV_K   __enable_interrupt() в функции main есть? =)   Dec 2 2006, 13:48
- - hoggar   Цитата(IV_K @ Dec 2 2006, 13:48) __enable...   Dec 4 2006, 13:15
- - hoggar   прочитал, что в одном из слотов векторов прерывани...   Dec 7 2006, 16:35
- - Alexey Bishletov   Цитата(hoggar @ Dec 7 2006, 16:35) прочит...   Dec 8 2006, 09:37


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st July 2025 - 19:37
Рейтинг@Mail.ru


Страница сгенерированна за 0.01382 секунд с 7
ELECTRONIX ©2004-2016