[NEWTYPE] NAME=H8/300H PROJECTFILES= 300H*main.c*Sample main function*standard 300H*start.asm*Start information*standard 300H*hwinit.c*Hardware initialisation*standard 300H*vects.c*Interrupt vector table*standard 300H*ioh83048f.h*I/O Registers*standard 300H*sbrk.c*sbrk routine*standard 300H*read.c*read routine*standard 300H*write.c*write routine*standard BIGE=YES BIGEDIRS=$(TCINSTALL)\h8300-coff\lib\gcc\h8300-coff\4.0-GNUH8_v0502\h8300h *$(TCINSTALL)\h8300-coff\h8300-coff\lib\h8300h BIGEFILES=m*c*gcc LITTLEE=NO INCDIR=$(TCINSTALL)\h8300-coff\include*$(TCINSTALL)\h8300-coff\h8300-coff\include *$(TCINSTALL)\h8300-coff\lib\gcc\h8300-coff\4.0-GNUH8_v0502\include DEFAULTPC=start DEFAULTSP=(EXCEPTION_VECTOR) &stack PROJECTTYPE=CAPPPROJECT CPUS= Sample H8/300H Device
上記の部分にコピーして貼り付けます。貼り付け結果は以下の通り。[CPUFILEVERSION] 1.0 (←ここに入れる) [NEWTYPE] NAME=H8/300L (以下略)
[CPUFILEVERSION] 1.0 [NEWTYPE] NAME=H8/300H PROJECTFILES= 300H*main.c*Sample main function*standard 300H*start.asm*Start information*standard 300H*hwinit.c*Hardware initialisation*standard 300H*vects.c*Interrupt vector table*standard 300H*ioh83048f.h*I/O Registers*standard 300H*sbrk.c*sbrk routine*standard 300H*read.c*read routine*standard 300H*write.c*write routine*standard BIGE=YES BIGEDIRS=$(TCINSTALL)\h8300-coff\lib\gcc\h8300-coff\4.0-GNUH8_v0502\h8300h *$(TCINSTALL)\h8300-coff\h8300-coff\lib\h8300h BIGEFILES=m*c*gcc LITTLEE=NO INCDIR=$(TCINSTALL)\h8300-coff\include*$(TCINSTALL)\h8300-coff\h8300-coff\include *$(TCINSTALL)\h8300-coff\lib\gcc\h8300-coff\4.0-GNUH8_v0502\include DEFAULTPC=start DEFAULTSP=(EXCEPTION_VECTOR) &stack PROJECTTYPE=CAPPPROJECT CPUS= Sample H8/300H Device [NEWTYPE] NAME=H8/300L (以下略)
300Hフォルダ内に3052Fというフォルダを作成し、main.c、hwinit.c、vects.cをコピーし、3052Fフォルダに貼り付けます。interrupt.cはないので作成します。PROJECTFILES= 300H\3052F*main.c*Sample main function*standard 300H*start.asm*Start information*standard 300H\3052F*hwinit.c*Hardware initialisation*standard 300H\3052F*vects.c*Interrupt vector table*standard 300H\3052F*interrupt.c*interrupt routines*standard 300H*ioh83048f.h*I/O Registers*standard 300H*sbrk.c*sbrk routine*standard 300H*read.c*read routine*standard 300H*write.c*write routine*standard
PROJECTFILES= 300H\3052F*main.c*Sample main function*standard 300H*start.asm*Start information*standard 300H\3052F*hwinit.c*Hardware initialisation*standard 300H\3052F*vects.c*Interrupt vector table*standard 300H\3052F*interrupt.c*interrupt routines*standard
上記のソースファイルがオリジナルです。しかし、使わない機能がほとんどなので削除し、下記のようなスッキリした構成にしています。#include "ioh83048f.h" unsigned char string[] = "hello world"; int count; int main (void) { for (count=0; count<12; count++) string[count] = 'a' + (unsigned char) count; return (0); } // Original source file
#include "3052s.h" int main (void){ while(1){ } } // Custom source file
上記のソースファイルがオリジナルです。こちらは主に、ヘッダファイルの修正と、それに応じた変更を行っています。しかし、この機能は使わないのでコメントアウトしています。#include "ioh83048f.h" void hw_initialise (void) { ABWCR = 0xFB; /* area 2 is 16-bit access */ } // Original source file
#include "3052s.h" void hw_initialise (void) { //BSC.ABWCR.BYTE = 0xFB; /* area 2 is 16-bit access */ return ; } // Custom source file
#include "3052s.h" // Custom source file
void start(void); /* Startup code (in start.asm) */ typedef void (*fp) (void); #define VECT_SECT __attribute__ ((section (".vects"))) const fp HardwareVectors[] VECT_SECT = { start, /* vector 0 Reset */ (fp)(0), /* vector 1 Reserved */ (fp)(0), /* vector 2 Reserved */ (fp)(0), /* vector 3 Reserved */ (fp)(0), /* vector 4 Reserved */ (fp)(0), /* vector 5 Reserved */ (fp)(0), /* vector 6 Reserved */ (fp)(0), /* vector 7 NMI */ (fp)(0), /* vector 8 TRAP */ (fp)(0), /* vector 9 TRAP */ (fp)(0), /* vector 10 TRAP */ (fp)(0), /* vector 11 TRAP */ (fp)(0), /* vector 12 IRQ0 */ (fp)(0), /* vector 13 IRQ1 */ (fp)(0), /* vector 14 IRQ2 */ (fp)(0), /* vector 15 IRQ3 */ (fp)(0), /* vector 16 IRQ4 */ (fp)(0), /* vector 17 IRQ5 */ (fp)(0), /* vector 18 Reserved */ (fp)(0), /* vector 19 Reserved */ (fp)(0), /* vector 20 WOVI */ (fp)(0), /* vector 21 CMI */ (fp)(0), /* vector 22 Reserved */ (fp)(0), /* vector 23 Reserved */ (fp)(0), /* vector 24 IMIA0 */ (fp)(0), /* vector 25 IMIB0 */ (fp)(0), /* vector 26 OVI0 */ (fp)(0), /* vector 27 Reserved */ (fp)(0), /* vector 28 IMIA1 */ (fp)(0), /* vector 29 IMIB1 */
(fp)(0), /* vector 30 OVI1 */ (fp)(0), /* vector 31 Reserved */ (fp)(0), /* vector 32 IMIA2 */ (fp)(0), /* vector 33 IMIB2 */ (fp)(0), /* vector 34 OVI2 */ (fp)(0), /* vector 35 Reserved */ (fp)(0), /* vector 36 IMIA3 */ (fp)(0), /* vector 37 IMIB3 */ (fp)(0), /* vector 38 OVI3 */ (fp)(0), /* vector 39 Reserved */ (fp)(0), /* vector 40 IMIA4 */ (fp)(0), /* vector 41 IMIB4 */ (fp)(0), /* vector 42 OVI4 */ (fp)(0), /* vector 43 Reserved */ (fp)(0), /* vector 44 DEND0A */ (fp)(0), /* vector 45 DEND0B */ (fp)(0), /* vector 46 DEND1A */ (fp)(0), /* vector 47 DEND1B */ (fp)(0), /* vector 48 Reserved */ (fp)(0), /* vector 49 Reserved */ (fp)(0), /* vector 50 Reserved */ (fp)(0), /* vector 51 Reserved */ (fp)(0), /* vector 52 ERI0 */ (fp)(0), /* vector 53 RXI0 */ (fp)(0), /* vector 54 TXI0 */ (fp)(0), /* vector 55 TEI0 */ (fp)(0), /* vector 56 ERI1 */ (fp)(0), /* vector 57 RXI1 */ (fp)(0), /* vector 58 TXI1 */ (fp)(0), /* vector 59 TEI1 */ (fp)(0) /* vector 60 ADI */ }; // Custom source file
履歴 2005年12月17日 公開 2005年12月17日 NAME=H8/300Hを変更すると問題が発生するため、変更しないように解説 2005年12月18日 hwinit.cでreturn ;が抜けていたので追加
SEO | [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送 | ||