|
View:
New views
2 Messages
—
Rating Filter:
Alert me
|
|
|
HCS12 SCI Flash Programming HelpI'm using and HCS12 with icc12 compiler. I'm using SCI1 to communicate to a touch screen LCD. This program loads the LCD GUI. When I try loading the program into flash, it doesn't work. When I'm not using flash, the program works fine and GUI is loaded on the screen. When I flash the board, I include the vectors_dp256 file and set the abs_address to 0xef80. Any help would be greatly appreciated. Thanks.
#include <mc9s12dp256.h> #include <stdio.h> #ifndef TDRE #define TDRE 0x80 #endif #ifndef RDRF #define RDRF 0x20 #endif #ifndef OR #define OR 0x08 #endif void main (){ sc_init(); loadscreen(); } void sc_init(){ SCI1BDL = 0x4E; // 19200 Baud Rate SCI1BDH = 0x00; SCI1CR1 = 0x00; SCI1CR2 = 0x2C; SCI1SR1 = 0xA8; } void outchar(data1){ // Function to send commands while(!(SCI1SR1 & TDRE)){}; SCI1DRL = data1; } void loadscreen (){ //loads GUI outchar(0x10); outchar(0x02); outchar(0x3E); outchar(0x00); outchar(0x50); } |
|
|
RE: HCS12 SCI Flash Programming HelpHi,
Below, the vector interrupt table I use for DP256... Note the address I put it is 0xff80, not 0xef80... I use ICC12 too, and it run OK for interrupt. When I used DP256, I often write some functions in RAM, but I never change the vector table address, just switched RAM to 0xd000 with NoIce debugger. Hope this helps. Best regards. Joel //********************************************************* // change the address if your vector starts elsewhere // Processeur 9S12DP256 : vecteurs interruptions en 0xff80 #pragma abs_address:0xFF80 void (*interrupt_vectors[])(void) = { // to cast a constant, say 0xb600, use (void (*)())0xb600 // Tous les vecteurs interrupt occupent 2 octets consécutifs. Ainsi // l'adresse de la routine d'interruption RTI est définie aux // adresses $FFF0-$FFF1 ISR_NonDeveloppe, // Reserved $FF80 ISR_NonDeveloppe, // Reserved $FF82 ISR_NonDeveloppe, // Reserved $FF84 ISR_NonDeveloppe, // Reserved $FF86 ISR_NonDeveloppe, // Reserved $FF88 ISR_NonDeveloppe, // Reserved $FF8A ISR_NonDeveloppe, // $FF8C PWM Emergency Shutdown ISR_NonDeveloppe, // $FF8E Port P Interrupt ISR_NonDeveloppe, // $FF90 MSCAN 4 Transmit ISR_NonDeveloppe, // $FF92 MSCAN 4 Receive ISR_NonDeveloppe, // $FF94 MSCAN 4 Error ISR_NonDeveloppe, // $FF96 MSCAN 4 Wake-up ISR_NonDeveloppe, // $FF98 MSCAN 3 Transmit ISR_NonDeveloppe, // $FF9A MSCAN 3 Receive ISR_NonDeveloppe, // $FF9C MSCAN 3 Error ISR_NonDeveloppe, // $FF9E MSCAN 3 Wake-up ISR_NonDeveloppe, // $FFA0 MSCAN 2 Transmit ISR_NonDeveloppe, // $FFA2 MSCAN 2 Receive ISR_NonDeveloppe, // $FFA4 MSCAN 2 Error ISR_NonDeveloppe, // $FFA6 MSCAN 2 Wake-up ISR_NonDeveloppe, // $FFA8 MSCAN 1 Transmit ISR_NonDeveloppe, // $FFAA MSCAN 1 Receive ISR_NonDeveloppe, // $FFAC MSCAN 1 Error ISR_NonDeveloppe, // $FFAE MSCAN 1 Wake-up ISR_NonDeveloppe, // $FFB0 MSCAN 0 Transmit ISR_NonDeveloppe, // $FFB2 MSCAN 0 Receive ISR_NonDeveloppe, // $FFB4 MSCAN 0 Error ISR_NonDeveloppe, // $FFB6 MSCAN 0 Wake-up ISR_NonDeveloppe, // $FFB8 Flash ISR_NonDeveloppe, // $FFBA EEPROM ISR_NonDeveloppe, // $FFBC SPI2 ISR_NonDeveloppe, // $FFBE SPI1 ISR_NonDeveloppe, // $FFC0 IIC Bus ISR_NonDeveloppe, // $FFC2 BDLC ISR_NonDeveloppe, // $FFC4 CRG Self Clock Mode ISR_NonDeveloppe, // $FFC6 CRG PLL Lock ISR_NonDeveloppe, // $FFC8 Pulse Acc B Overflow ISR_TimerModulus, // $FFCA Modulus Down Counter Underflow ISR_NonDeveloppe, // $FFCC Port H Interrupt ISR_NonDeveloppe, // $FFCE Port J Interrupt ISR_NonDeveloppe, // $FFD0 ATD1 ISR_NonDeveloppe, // $FFD2 ATD0 ISR_Sci1, // $FFD4 SCI1 ISR_Sci0, // $FFD6 SCI0 ISR_NonDeveloppe, // $FFD8 SPI0 ISR_NonDeveloppe, // $FFDA Pulse Acc A Input Edge ISR_NonDeveloppe, // $FFDC Pulse Acc A Overflow ISR_NonDeveloppe, // $FFDE Timer Overflow ISR_Timer7, // $FFE0 Timer Channel 7 ISR_Timer6, // $FFE2 Timer Channel 6 ISR_Timer5, // $FFE4 Timer Channel 5 ISR_Timer4, // $FFE6 Timer Channel 4 ISR_Timer3, // $FFE8 Timer Channel 3 ISR_Timer2, // $FFEA Timer Channel 2 ISR_Timer1, // $FFEC Timer Channel 1 ISR_Timer0, // $FFEE Timer Channel 0 ISR_Rti, // $FFF0 Real Time Interrupt ISR_NonDeveloppe, // $FFF2 IRQ ISR_NonDeveloppe, // $FFF4 XIRQ ISR_NonDeveloppe, // $FFF6 SWI ISR_NonDeveloppe, // $FFF8 Unimplement Instr. Trap ISR_NonDeveloppe, // $FFFA COP failure reset ISR_NonDeveloppe, // $FFFC Clock monitor fail reset _start, // $FFFE Reset }; -----Message d'origine----- De : 68HC12@... [mailto:68HC12@...] De la part de jssimbe Envoyé : vendredi 6 novembre 2009 02:29 À : 68HC12@... Objet : [68HC12] HCS12 SCI Flash Programming Help I'm using and HCS12 with icc12 compiler. I'm using SCI1 to communicate to a touch screen LCD. This program loads the LCD GUI. When I try loading the program into flash, it doesn't work. When I'm not using flash, the program works fine and GUI is loaded on the screen. When I flash the board, I include the vectors_dp256 file and set the abs_address to 0xef80. Any help would be greatly appreciated. Thanks. |
| Free embeddable forum powered by Nabble | Forum Help |