/* LED点滅プログラム本体コンパイル C-c C-c h8300-hms-gcc -fomit-frame-pointer -c -O2 -mh -o led.o -Wall led.c スタートアップルーチンアセンブル M-! h8300-hms-gcc -o crt1.o -c -O2 -mh -Wall crt1.s リンク M-! h8300-hms-ld -relax -Map hello.map -Tmodule.x -Tadrs.x ROMイメージ作成 M-! h8300-hms-objcopy -R .data -R .perireg -O binary hello.x 00001.bin 逆アセンブル M-! h8300-hms-objdump --disassemble-all --target=binary --architecture=h8300 00001.bin > disasm.s 書込み用ROMイメージ M-! h8300-hms-objcopy -R .data -R .perireg -O srec hello.x 00001.mot */ volatile char* const P4PCR = ( char* )0xffffda ; volatile char* const P4DR = ( char* )0xffffc7 ; volatile char* const P4DDR = ( char* )0xffffc5 ; void Timer( int LoopCnt ) ; void Led( int Status ) ; void LedBlink( void ) ; int main( void ) { *P4DDR = 0x7f ; *P4PCR = 0xff ; LedBlink() ; return( 0 ) ; } void LedBlink( void ) { for(;;) { Led( 1 ) ; Timer( 1 ) ; Led( 0 ) ; Timer( 1 ) ; } } void Led( int Status ) { if( Status == 0 ) { *P4DR = ( *P4DR ) | 0x40 ; } else { *P4DR = ( *P4DR ) & ( ~0x40 ) ; } } void Timer( int LoopCnt ) { int i ; for( i = 0 ; i < LoopCnt ; i ++ ) { } } extern void start( void ); void Reserved( void ) { } typedef void (*fp)(void); const fp VectorTable[] __attribute__ ((section (".vectors"))) = { (fp)start //00 , (fp)Reserved //01 , (fp)Reserved //02 , (fp)Reserved //03 , (fp)Reserved //04 , (fp)Reserved //05 , (fp)Reserved //06 , (fp)Reserved //07 , (fp)Reserved //08 , (fp)Reserved //09 , (fp)Reserved //10 , (fp)Reserved //11 , (fp)Reserved //12 , (fp)Reserved //13 , (fp)Reserved //14 , (fp)Reserved //15 , (fp)Reserved //16 , (fp)Reserved //17 , (fp)Reserved //18 , (fp)Reserved //19 , (fp)Reserved //20 , (fp)Reserved //21 , (fp)Reserved //22 , (fp)Reserved //23 , (fp)Reserved //24 , (fp)Reserved //25 , (fp)Reserved //26 , (fp)Reserved //27 , (fp)Reserved //28 , (fp)Reserved //29 , (fp)Reserved //30 , (fp)Reserved //31 , (fp)Reserved //32 , (fp)Reserved //33 , (fp)Reserved //34 , (fp)Reserved //35 , (fp)Reserved //36 , (fp)Reserved //37 , (fp)Reserved //38 , (fp)Reserved //39 , (fp)Reserved //40 , (fp)Reserved //41 , (fp)Reserved //42 , (fp)Reserved //43 , (fp)Reserved //44 , (fp)Reserved //45 , (fp)Reserved //46 , (fp)Reserved //47 , (fp)Reserved //48 , (fp)Reserved //49 //Dbg1charOut , (fp)Reserved //50 , (fp)Reserved //51 , (fp)Reserved //52 , (fp)Reserved //53 , (fp)Reserved //54 , (fp)Reserved //55 , (fp)Reserved //56 , (fp)Reserved //57 , (fp)Reserved //58 , (fp)Reserved //59 , (fp)Reserved //60 , (fp)Reserved //61 , (fp)Reserved //62 , (fp)Reserved //63 } ;