{"id":35,"date":"2008-05-07T22:05:59","date_gmt":"2008-05-07T13:05:59","guid":{"rendered":"http:\/\/www.shudoshiki.net\/wordpress\/?p=35"},"modified":"2008-05-07T22:05:59","modified_gmt":"2008-05-07T13:05:59","slug":"%e3%81%93%e3%82%93%e3%81%ab%e3%81%a1%e3%81%afh8%e3%81%ae%e4%b8%96%e7%95%8c","status":"publish","type":"post","link":"https:\/\/www.shudoshiki.net\/weblog\/?p=35","title":{"rendered":"\u3053\u3093\u306b\u3061\u306fH8\u306e\u4e16\u754c"},"content":{"rendered":"<p>H8\u30de\u30a4\u30b3\u30f3\u3067\u52d5\u304f&#8221;Hello, world!&#8221;\u3092\u4f5c\u3063\u3066\u307f\u307e\u3059\u3002<\/p>\n<p>\u3053\u3053\u3067\u7d39\u4ecb\u3059\u308b\u306e\u306f\u3001\u4ee5\u524d\u306b\u516c\u958b\u3057\u305f<a href=\"http:\/\/www.shudoshiki.net\/electronics\/\" target=\"_blank\">h8mon<\/a>\u304c\u66f8\u304d\u8fbc\u307e\u308c\u3066\u3044\u308bAKI-H8\/3069F\u30de\u30a4\u30b3\u30f3\u30dc\u30fc\u30c9\u3067\u52d5\u4f5c\u3059\u308b\u3082\u306e\u3067\u3059\u3002<\/p>\n<p>\u3068\u306f\u8a00\u3063\u3066\u3082OS\u3082\u7121\u3051\u308c\u3070\u6a19\u6e96\u51fa\u529b\u3082\u7121\u3044\u74b0\u5883\u3067\u3059\u3002\u3068\u308a\u3042\u3048\u305a\u51fa\u529b\u306fh8mon\u3067\u3082\u30b3\u30f3\u30bd\u30fc\u30eb\u5165\u51fa\u529b\u306b\u4f7f\u3063\u3066\u3044\u308bRS232C\u3067\u884c\u3046\u3053\u3068\u3068\u3057\u307e\u3059\u3002<\/p>\n<p>\u65b9\u6cd5\u3068\u3057\u3066\u306f\u76f4\u63a5SCI1(RS232C)\u3092\u5236\u5fa1\u3057\u3066\u30a2\u30b9\u30ad\u30fc\u30b3\u30fc\u30c9\u6587\u5b57\u5217\u3092\u51fa\u529b\u3059\u308b\u3053\u3068\u304c\u8003\u3048\u3089\u308c\u307e\u3059\u304c\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u30bd\u30fc\u30b9(hello.c)\u3067\u3082\u6587\u5b57\u3092\u51fa\u529b\u3059\u308b\u3053\u3068\u304c\u51fa\u6765\u307e\u3059\u3002<\/p>\n<blockquote>\n<pre><code>void putch(char ch)\n{\nasm(\"mov.l\t#0, er2\");\nasm(\"trapa\t#2\");\n}\nstatic void print(char *str)\n{\nwhile(*str) {\nputch(*str);\nstr ++;\n}\n}\nint main(void)\n{\nprint(\"Hello, H8 world!\\r\\n\");\nreturn 0;\n}\n<\/code><\/pre>\n<\/blockquote>\n<p>\n\u3053\u306e\u30bd\u30fc\u30b9\u3060\u3051\u3067\u306f\u307e\u3060\u5b9f\u884c\u306f\u51fa\u6765\u307e\u305b\u3093\u3002\u30b9\u30bf\u30fc\u30c8\u30a2\u30c3\u30d7\u30d7\u30ed\u30b0\u30e9\u30e0\u304c\u5fc5\u8981\u306a\u306e\u3067\u3059\u304c\u3001\u307e\u305a\u306fmain()\u3092\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n<p>printf()\u306e\u3088\u3046\u306a\u6a19\u6e96\u5165\u51fa\u529b\u95a2\u6570\u306f(\u4f7f\u3046\u65b9\u6cd5\u306f\u3042\u308b\u306e\u3067\u3059\u304c)\u4f7f\u3048\u307e\u305b\u3093\u3002printf()\u306e\u4ee3\u308f\u308a\u306e\u6587\u5b57\u5217\u51fa\u529b\u95a2\u6570\u3068\u3057\u3066print()\u3092\u66f8\u304d\u307e\u3057\u305f\u3002\u4e2d\u306f\u6587\u5b57\u5217\u306e\u7d42\u308f\u308a(0)\u307e\u3067\u4e00\u6587\u5b57\u3065\u3064putch()\u306b\u5f15\u6570\u3068\u3057\u3066\u6e21\u3057\u3066\u3044\u308b\u3060\u3051\u3067\u3059\u3002<\/p>\n<p>putch()\u306e\u4e2d\u8eab\u306f\u30a4\u30f3\u30e9\u30a4\u30f3\u30a2\u30bb\u30f3\u30d6\u30e9\u3067\u66f8\u304b\u308c\u3066\u3044\u307e\u3059\u3002<br \/>\n\u5185\u5bb9\u306fer2\u30ec\u30b8\u30b9\u30bf\u30920\u306b\u3057\u3066\u3001\u300ctrapa #2\u300d\u3092\u5b9f\u884c\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u5b9f\u306fh8mon\u3067\u306ftrapa #2\u3067SCI1\u304b\u3089\u6587\u5b57\u3092\u5165\u51fa\u529b\u3059\u308b\u3053\u3068\u304c\u51fa\u6765\u307e\u3059\u3002er2\u30920\u306b\u3059\u308b\u3068er0\u306b\u66f8\u304b\u308c\u305f\u30c7\u30fc\u30bf\u304c\u51fa\u529b\u3055\u308c\u307e\u3059\u3002er2\u30921\u306b\u3059\u308b\u3068SCI1\u304c\u53d7\u4fe1\u3057\u305f\u30c7\u30fc\u30bf\u3092er0\u306b\u66f8\u304d\u8fbc\u307f\u307e\u3059\u3002\u3064\u307e\u308a\u623b\u308a\u5024\u3068\u3057\u3066\u53c2\u7167\u3067\u304d\u307e\u3059\u3002<br \/>\n<small>(\u3053\u306e\u30b3\u30fc\u30c9\u306f\u3042\u307e\u308a\u826f\u3044\u4f8b\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002\u3053\u306e\u30b3\u30fc\u30c9\u306f\u5f15\u6570\u304cer0\u3067\u6e21\u3055\u308c\u3066\u3001\u4ed6\u306e\u30ec\u30b8\u30b9\u30bf\u304c\u7834\u58ca\u3055\u308c\u306a\u3044\u3053\u3068\u3092\u671f\u5f85\u3057\u3066\u3044\u307e\u3059\u3002\u5b9f\u969b\u306b\u305d\u3046\u306a\u308b\u306e\u3067\u3059\u304c\u3001\u672c\u6765\u306f\u300c\u62e1\u5f35\u30a2\u30bb\u30f3\u30d6\u30ea\u69cb\u6587\u300d\u3092\u4f7f\u3046\u3079\u304d\u3067\u3059\u3002\u4eca\u56de\u306f\u30bd\u30fc\u30b9\u306e\u898b\u6613\u3055\u3092\u512a\u5148\u3057\u3066\u3053\u306e\u3088\u3046\u306b\u3057\u3066\u3044\u307e\u3059\u3002)<\/small><\/p>\n<p>\u4ee5\u4e0b\u306f\u30b9\u30bf\u30fc\u30c8\u30a2\u30c3\u30d7\u30eb\u30fc\u30c1\u30f3(start.s)\u3067\u3059\u3002<\/p>\n<blockquote>\n<pre><code>\t.h8300h\n.section .text\n.global\t_start\n.extern\t_stack_bottom\n.extern _bss_start\n.extern _bss_end\n_start:\n;\tmov.l\t#0x600000,er7\t\t; Set SP\nmov.l\ter0,@-er7\nmov.l\ter1,@-er7\n;; .data section initialize\nmov.l\t#_dataRAM_start,er0\nmov.l\t#_dataRAM_end,er1\nmov.l\t#_dataROM_start,er2\nbra\tloop11\nloop1:\nmov.l\t@er2,er3\nmov.l\ter3,@er0\nadd\t#4,er0\nadd\t#4,er2\nloop11:\ncmp.l\ter0,er1\nbf\tloop1\n;; .bss section initialize\nmov.l\t#_bss_start,er0\nmov.l\t#_bss_end,er1\nmov.l\t#0,er2\nbra\tloop21\nloop2:\nmov.l\ter2,@er0\nadd\t#4,er0\nloop21:\ncmp.l\ter0,er1\nbf\tloop2\nmov.l\t@er7+,er1\nmov.l\t@er7+,er0\njsr\t_main\t\t; Goto main()\n;\trts\ntrapa #3\n.end<\/code><\/pre>\n<\/blockquote>\n<p>\n\u5404\u30bb\u30af\u30b7\u30e7\u30f3\u3092\u521d\u671f\u5316\u3057\u3066main()\u3092\u30b3\u30fc\u30eb\u3057\u3066\u3044\u307e\u3059\u3002\u6700\u5f8c\u306e\u300ctrapa #3\u300d\u306fh8mon\u306b\u51e6\u7406\u3092\u623b\u3059\u305f\u3081\u306e\u7269\u3067\u3059\u3002h8mon\u3067\u306f\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u30d6\u30ec\u30fc\u30af\u3068\u3057\u3066trapa #3\u3092\u4f7f\u7528\u3057\u3066\u3044\u307e\u3059\u3002\u30b9\u30bf\u30c3\u30af\u30dd\u30a4\u30f3\u30bf(er7)\u306e\u521d\u671f\u5316\u3082\u5fc5\u8981\u306a\u306e\u3067\u3059\u304c\u3001\u4e0a\u8a18\u3067\u306f\u30b3\u30e1\u30f3\u30c8\u306b\u3057\u3066\u3044\u307e\u3059\u3002\u3053\u306e\u5834\u5408\u3001\u30b9\u30bf\u30c3\u30af\u30dd\u30a4\u30f3\u30bf\u306fh8mon\u304c\u8a2d\u5b9a\u3059\u308b\u521d\u671f\u5024(0xFFFF20:\u5185\u8535SRAM)\u3067\u52d5\u4f5c\u3057\u307e\u3059\u3002<\/p>\n<p>\u4ee5\u4e0b\u306f\u30ea\u30f3\u30af\u30b9\u30af\u30ea\u30d7\u30c8(h83069.lds)\u3067\u3059\u3002<\/p>\n<blockquote>\n<pre><code>OUTPUT_FORMAT(\"elf32-h8300\")\nOUTPUT_ARCH(h8300h)\nENTRY(\"_start\")\nMEMORY\n{\nram(rx)\t\t: o = 0x400000, l = 0x080000\n}\nSECTIONS\n{\n.text :\t{\n*(.text)\n*(.strings)\n*(.rodata)\n*(.rodata.str1.1)\n_dataROM_start = . ;\n} > ram\n.data ALIGN(4) : {\n_dataRAM_start = . ;\n*(.data)\n_dataRAM_end = . ;\n} > ram\n.bss ALIGN(4) : {\n_bss_start = . ;\n*(.bss)\n*(COMMON)\n_bss_end = . ;\n} > ram\n}<\/code><\/pre>\n<\/blockquote>\n<p>\n\u30d7\u30ed\u30b0\u30e9\u30e0\u30920x400000\u756a\u5730\u306b\u914d\u7f6e\u3059\u308b\u3088\u3046\u306b\u3057\u3066\u3044\u307e\u3059\u3002\u3053\u306e\u756a\u5730\u306b\u306fAKI-H8\/3069F\u30de\u30a4\u30b3\u30f3\u30dc\u30fc\u30c9\u3067\u306fDRAM\u304c\u5b9f\u88c5\u3055\u308c\u3066\u3044\u307e\u3059\u3002h8mon\u3067\u306f\u8d77\u52d5\u5f8c\u3001DRAM\u304c\u4f7f\u7528\u3067\u304d\u308b\u3088\u3046\u306bBSC(\u30d0\u30b9\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9)\u3092\u521d\u671f\u5316\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u6700\u5f8c\u306bMakefile\u3067\u3059\u3002<\/p>\n<blockquote>\n<pre><code>CROSS   = h8300-elf-\nCC\t= $(CROSS)gcc\nAS\t= $(CROSS)as\nLD\t= $(CROSS)gcc\nOBJCOPY\t= $(CROSS)objcopy\nCFLAGS\t= -mh -g -O2 -Wall\nLDSCRIPT= h83069.lds\nLDFLAGS = -mh -Wl,-Map,$*.map -Wl,-T$(LDSCRIPT) -nostartfiles\nPROGRAM\t= hello.mot\nOBJS          = start.o hello.o\nSRCS          = start.s hello.c\n.SUFFIXES:\t.mot .exe .a .o .c .s .h\n.c.o:\n$(CC) $(CFLAGS) -c $<\n.elf.mot:\n$(OBJCOPY) -Osrec $< $@\nall: $(PROGRAM)\n$(PROGRAM): $(OBJS) $(START) $(LDSCRIPT) $(DEPEND)\n$(LD) $(LDFLAGS) -o $*.elf $(START) $(OBJS) -lgcc\n$(OBJCOPY) -Osrec $*.elf $*.mot\nclean:\nrm -f -r $(OBJS) $(PROGRAM) $(DEPEND) *.mot *.map *.elf *~<\/code><\/pre>\n<\/blockquote>\n<p>\n\u4ee5\u524d\u7d39\u4ecb\u3057\u305f<a href=\"http:\/\/www.shudoshiki.net\/electronics\/\" target=\"_blank\">\u30af\u30ed\u30b9\u30b3\u30f3\u30d1\u30a4\u30e9<\/a>\u3067\u30b3\u30f3\u30d1\u30a4\u30eb\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>make\u30b3\u30de\u30f3\u30c9\u3067\u30b3\u30f3\u30d1\u30a4\u30eb\u3059\u308b\u3068\u300chello.mot\u300d\u304c\u51fa\u6765\u308b\u306f\u305a\u3067\u3059\u3002<\/p>\n<p>h8mon\u3067\u306f\u300cl\u300d\u30b3\u30de\u30f3\u30c9\u3067hello.mot\u3092\u30ed\u30fc\u30c9\u3059\u308b\u3053\u3068\u304c\u51fa\u6765\u307e\u3059\u3002\u30bf\u30fc\u30df\u30ca\u30eb\u30bd\u30d5\u30c8\u306f\u300cTera Term Pro\u300d\u304c\u304a\u3059\u3059\u3081\u3067\u3059\u3002h8mon\u3067l\u30b3\u30de\u30f3\u30c9\u5165\u529b\u5f8c\u3001\u300c\u30d5\u30a1\u30a4\u30eb\u9001\u4fe1\u300d\u6a5f\u80fd\u304bhello.mot\u30d5\u30a1\u30a4\u30eb\u3092\u30c9\u30ed\u30c3\u30d7\u3057\u3066\u8ee2\u9001\u3057\u307e\u3059\u3002<\/p>\n<p>h8mon\u306eg\u30b3\u30de\u30f3\u30c9\u3067\u30ed\u30fc\u30c9\u3057\u305f\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002<\/p>\n<p>\u5b9f\u969b\u306b\u52d5\u304b\u3057\u305f\u753b\u9762\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<blockquote>\n<pre>H8\/300(H) 3069F Monitor Ver. 0.80\n(c)2003,2004,2007 Takashi SHUDO\nVirtual vector table area : FFBF20 - FFC01F\nMonitor used RAM area     : FFC020 - FFC475\nMonitor stack end address : FFC608\nBuild date                : 11:27:06 May  3 2008\n>l\nPlease send S-records data.\nLoad address     : 400000 - 4000B2\nExcution address : 400000\nDone.\n>g\nHello, H8 world!\nBreak.\nPC = 400062      CCR = 84\nR0 = 00FF0000    R1 = 00FFC090   R2 = 00FFC0F0   R3 = 00FFC09D\nR4 = 00000000    R5 = 00000000   R6 = 00000000   R7 = 00FFFF20\n400062 : 57 30                         trapa    #0x3:3\n><\/pre>\n<\/blockquote>\n<p>\n\u300cHello, H8 world!\u300d\u306e\u6587\u5b57\u304c\u51fa\u529b\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u4eca\u56de\u306e\u30bd\u30fc\u30b9\u306f<a href=\"http:\/\/www.shudoshiki.net\/electronics\/hello_h8.tgz\" target=\"_blank\">\u3053\u3053<\/a>\u306b\u7f6e\u3044\u3066\u304a\u304d\u307e\u3059\u3002<\/p>\n<p>\u3053\u3053\u307e\u3067\u8aad\u3093\u3067\u304f\u308c\u305f\u65b9\u3001\u304a\u75b2\u308c\u69d8\u3067\u3057\u305f\u3002\u6b21\u56de\u306fh8mon\u306e\u76ee\u7389\uff1f\u3067\u3042\u308b\u3001gdb\u3092\u4f7f\u3063\u305f\u30bd\u30d5\u30c8\u306e\u5b9f\u884c\u3001\u30c7\u30d0\u30c3\u30b0\u3092\u4e88\u5b9a\u3057\u3066\u3044\u307e\u3059\u3002(\u3044\u3064\u306b\u306a\u3063\u305f\u306f\u5de5\u4f5c\u306e\u8a71\u306b\u306a\u308b\u3093\u3060\u308d\u3046(^^;;;)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>H8\u30de\u30a4\u30b3\u30f3\u3067\u52d5\u304f&#8221;Hello, world!&#8221;\u3092\u4f5c\u3063\u3066\u307f\u307e\u3059\u3002\u3053\u3053\u3067\u7d39\u4ecb\u3059\u308b\u306e\u306f\u3001\u4ee5\u524d\u306b\u516c\u958b\u3057\u305fh8mon\u304c\u66f8\u304d\u8fbc\u307e\u308c\u3066\u3044\u308bAKI-H8\/3069F\u30de\u30a4\u30b3\u30f3\u30dc\u30fc\u30c9\u3067\u52d5\u4f5c\u3059\u308b\u3082\u306e\u3067\u3059\u3002\u3068\u306f\u8a00\u3063\u3066\u3082OS\u3082\u7121\u3051\u308c\u3070\u6a19\u6e96\u51fa\u529b\u3082\u7121\u3044\u74b0\u5883\u3067\u3059\u3002&#8230;<br \/>\n <a href=\"https:\/\/www.shudoshiki.net\/weblog\/?p=35\">\u7d9a\u304d\u3092\u8aad\u3080 <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[9],"tags":[],"class_list":["post-35","post","type-post","status-publish","format-standard","hentry","category-9"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.shudoshiki.net\/weblog\/index.php?rest_route=\/wp\/v2\/posts\/35","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.shudoshiki.net\/weblog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.shudoshiki.net\/weblog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.shudoshiki.net\/weblog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.shudoshiki.net\/weblog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=35"}],"version-history":[{"count":0,"href":"https:\/\/www.shudoshiki.net\/weblog\/index.php?rest_route=\/wp\/v2\/posts\/35\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.shudoshiki.net\/weblog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=35"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.shudoshiki.net\/weblog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=35"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.shudoshiki.net\/weblog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=35"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}