100408

|


机続き。まずはプレソルベントで掃除。エアブローしても結構な粉塵が表面に
残ってる。ロックエースのマルチトップクリアーQ 10:1型を主剤150g、トータ
ル180g程度で、ガン吹き。枠組み部分なんかはほとんどミストになってしまう
ので効率悪い。2回ほど吹いて使い切り。これは目止めくらい。



H8SX続き。SCI4で通信します。H8SXは最近のチップだけあって省電力設計がしっ かりしてる。日立のシリアルといえばSCI。このSCIはH8/3052に近い。同じじゃ ないけど。SCIと名前がついていてもそれはハードの基本構造だけ同じというだ けなので毎回きっちり調べないといけない。周辺デバイスは融通無碍なんだよね。
putc/getcまでできれば、後はお気楽だ(LEDに較べれば)。
#include <types.h>

#define	PM3_DDR	((volatile uint8_t *)0xffee50)
#define	PM3_DR	((volatile uint8_t *)0xffee51)

// ビット構成はH8/3052と同じ。
#define	_SCI4_BASE	0xfffe90
/* Serial Mode Register R/W */
#define	_SCI_SMR	0
#define	SMR_CM		0x80	/* Communication Mode (1:clock)*/
#define	SMR_CHR		0x40	/* Character Length (0:8bit) */
#define	SMR_PE		0x20	/* Parity Enable */
#define	SMR_PM		0x10	/* Parity Mode (0:even) */
#define	SMR_STOP	0x08	/* Stop bit length (0: 1stopbit) */
#define	SMR_MP		0x04	/* Multi Processor mode */
#define	SMR_CKS1	0x02	/* ClocK Select 1 */
#define	SMR_CKS0	0x01	/* ClocK Select 0 */
/* Bit Rate Register */
#define	_SCI_BRR	1
/* Serial Control Register R/W */
#define	_SCI_SCR	2
#define	SCR_TIE		0x80	/* Transmit Interrupt Enable */
#define	SCR_RIE		0x40	/* Receive Interrupt Enable */
#define	SCR_TE		0x20	/* Transmit Enable */
#define	SCR_RE		0x10	/* Receive Enable */
#define	SCR_MPIE	0x08	/* Multi Processor Interrupt Enable */
#define	SCR_TEIE	0x04	/* Transmit End Interrupt Enable */
#define	SCR_CKE1	0x02	/* ClocK Enable 1 */
#define	SCR_CKE0	0x01	/* ClocK Enable 0 */
/* Transmit Data Register R/W */
#define	_SCI_TDR	3
/* Serial Status Register R/(W) */
#define	_SCI_SSR	4
#define	SSR_TDRE	0x80	/* Transmit Data Register Empty (0 write only)*/
#define	SSR_RDRF	0x40	/* Receive Data Register Full (0 write only)*/
#define	SSR_ORER	0x20	/* OverRun ERror (0 write only)*/
#define	SSR_FER		0x10	/* Framing ERror (0 write only)*/
#define	SSR_PER		0x08	/* Parity ERror (0 write only)*/
#define	SSR_TEND	0x04	/* Transmit END (read only)*/
#define	SSR_MPB		0x02	/* MultiProcessor Bit (read only)*/
#define	SSR_MPBT	0x01	/* MultiProcessor Bit Transfer */

#define	SSR_ERR_BITS	(SSR_ORER | SSR_FER | SSR_PER)
/* Receive Data Register */
#define	_SCI_RDR	5

//これはH8/3052にはなくH8SX/1655の設定。
/* Smart Card Mode Register */
#define	_SCI_SCMR	6
#define	SCMR_SDIR	0x08
#define	SCMR_SINV	0x04
#define	SCMR_SMIF	0x01	/* SMart card InterFace Select */

#define	SCI(n, r)	((volatile uint8_t *)_SCI ## n ## _BASE + _SCI_ ## r)


// このレジスタを設定しないと周辺モジュールのポートが入力設定にならない
/* Input buffer Control Register  1:Enable, 0:Disable */
#define	P6_ICR		((volatile uint8_t *)0xfffb95)

// 省電力用のモジュールの有効化の設定。
/* Module SToP Control Register B */
#define	MSTPCRB		((volatile uint16_t *)0xfffdca)


void sci4_init (void);
int8_t sci4_getc (void);
void sci4_putc (int8_t);

void
machine_startup ()
{
  int8_t c;

  *PM3_DDR |= 8;
  *PM3_DR &= ~8;	// LED on.

  sci4_init ();
  sci4_putc ('o');
  sci4_putc ('h');
  sci4_putc ('a');
  sci4_putc ('y');
  sci4_putc ('o');
  sci4_putc ('\r');
  sci4_putc ('\n');
  while ((c = sci4_getc ()))
    sci4_putc (c);

  // Error. SCI4の受信でエラーがあればここに来ます。
  *PM3_DR |= 8;		// LED off.
    ;
  /*NOTREACHED*/
}

void
sci4_init ()
{
  // Start SCI4 module. SCI4はデフォルトでは無効化されているので有効にします。
  *MSTPCRB &= ~(1 << 12);

  //まず受信/送信を無効にします
  // Disable transmit/receive.
  *SCI (4, SCR) &= ~(SCR_TE | SCR_RE);

  //周辺デバイスとしてポートを入力に使うので入力バッファの設定をします。
  // Setup Input buffer. Use internal clock.
  *P6_ICR &= ~1;	//P60: SCI4 TxD
  *P6_ICR |= 2;		//P61: SCI4 RxD

  //このモジュールの基本クロックを設定します。
  // Clock select
  *SCI (4, SCR) &= ~(SCR_CKE0 | SCR_CKE1); // Peripheral clock / 1

  //シリアル通信のプロトコルを設定。ここでは調歩同期8bit Non Parity 1 Stop bit.
  // Tx/Rx Format.
  *SCI (4, SCMR) = 0;	// Clocked synchronous mode.
  *SCI (4, SMR)	= 0;	// 8N1

  //ビットレートを決めるには周辺クロックがいくつかを決めないといけない。
  //この基板の場合入力クロックは12MHzでMD_CLK=0。
  //SCKCRデフォルトの場合CPUクロックは1/1で12MHz,周辺クロックも1/1で12MHz
  // Bit rate.
  // Input Clock: 12MHz
  // CPU clock: 12MHz
  // Peripheral clock 12MHz
  // 12.* 1000000/(64/2 *38400) -1 = 8.77
  *SCI (4, BRR) = 9;	//38400bps

  // Wait at least 1bit interval.
  volatile int i;
  for (i = 0; i < 0xffff; i++)
    ;

  // Enable transmit/receive.
  *SCI (4, SCR) |= (SCR_TE | SCR_RE);
}

int8_t
sci4_getc ()
{
  uint8_t c;

  while (((c = *SCI (4, SSR)) & (SSR_RDRF | SSR_ERR_BITS)) == 0)
    ;
  if (c & SSR_ERR_BITS)
    {
      *SCI (4, SSR) &= ~(SSR_RDRF | SSR_ERR_BITS);
      return 0;
    }

  c = *SCI (4, RDR);
  *SCI (4, SSR) &= ~SSR_RDRF;

  return c;
}

void
sci4_putc (int8_t c)
{

  while ((*SCI (4, SSR) & SSR_TDRE) == 0)
    ;
  *SCI (4, TDR) = c;
  *SCI (4, SSR) &= ~SSR_TDRE;

  // Wait transfer complete. これは今回の例ではなくてもい。
  while ((*SCI (4, SSR) & SSR_TEND))
    ;
}

-*- mode: compilation; default-directory: "~/os/w/h8sx/board/test3/" -*-
Compilation started at Thu Apr  8 20:57:58

gmake romwrite
/usr/home/uch/os/w/tools/bin/h8300-elf-gcc -msx -fomit-frame-pointer -Wall -Werror -I../../../include -O2 -mint32 -Wp,-MD,.deps/start.P -c -o start.o start.c
/usr/home/uch/os/w/tools/bin/h8300-elf-ld -T ldscript -o test.elf  entry.o start.o
/usr/home/uch/os/w/tools/bin/h8300-elf-objdump -x test.elf

test.elf:     file format elf32-h8300
test.elf
architecture: h8300sx, flags 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED
start address 0x00000100

Program Header:
    LOAD off    0x00000074 vaddr 0x00000000 paddr 0x00000000 align 2**0
         filesz 0x00000004 memsz 0x00000004 flags r--
    LOAD off    0x00000078 vaddr 0x00000100 paddr 0x00000100 align 2**0
         filesz 0x000002a0 memsz 0x000002a0 flags r-x

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         000002a0  00000100  00000100  00000078  2**1
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .start_vector 00000004  00000000  00000000  00000074  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  2 .comment      00000012  00000000  00000000  00000318  2**0
                  CONTENTS, READONLY
SYMBOL TABLE:
00000100 l    d  .text	00000000 .text
00000000 l    d  .start_vector	00000000 .start_vector
00000000 l    d  .comment	00000000 .comment
00000106 l       .text	00000000 .L11
00000000 l    df *ABS*	00000000 start.c
00000184 l       .text	00000000 .L2
00000172 l       .text	00000000 .L5
000001b6 l       .text	00000000 .L9
000001d4 l       .text	00000000 .L10
000001de l       .text	00000000 .L36
000001fc l       .text	00000000 .L12
00000206 l       .text	00000000 .L35
00000224 l       .text	00000000 .L14
0000022e l       .text	00000000 .L34
0000024c l       .text	00000000 .L16
00000256 l       .text	00000000 .L33
00000274 l       .text	00000000 .L18
0000027e l       .text	00000000 .L32
0000029a l       .text	00000000 .L20
000002a4 l       .text	00000000 .L31
000002c0 l       .text	00000000 .L22
000002f2 l       .text	00000000 .L54
000002cc l       .text	00000000 .L30
000002e8 l       .text	00000000 .L25
00000314 l       .text	00000000 .L26
0000032c l       .text	00000000 .L27
0000033c l       .text	00000000 .L56
00000360 l       .text	00000000 .L57
00000378 l       .text	00000000 .L62
00000394 l       .text	00000000 .L63
00000196 g       .text	000001a6 _machine_startup
00000378 g       .text	00000028 _sci4_putc
0000033c g       .text	0000003c _sci4_getc
00ffc000 g       *ABS*	00000000 _stack_start
00000100 g       .text	00000000 start
0000010c g       .text	0000008a _sci4_init


/usr/home/uch/os/w/tools/bin/h8300-elf-objdump -D test.elf

test.elf:     file format elf32-h8300

Disassembly of section .text:

00000100 <start>:
 100:	7a 07 00 ff 	mov.l	#0xffc000,er7
 104:	c0 00 

00000106 <.L11>:
 106:	5a 00 01 96 	jmp	@0x196:24
 10a:	40 fa       	bra	.-6 (0x106)

0000010c <_sci4_init>:
 10c:	1a cf       	sub.l	#0x4,er7
 10e:	6b 22 00 ff 	mov.w	@0xfffdca:32,r2
 112:	fd ca 
 114:	e2 ef       	and.b	#0xef,r2h
 116:	6b a2 00 ff 	mov.w	r2,@0xfffdca:32
 11a:	fd ca 
 11c:	6a 2a 00 ff 	mov.b	@0xfffe92:32,r2l
 120:	fe 92 
 122:	ea cf       	and.b	#0xcf,r2l
 124:	6a aa 00 ff 	mov.b	r2l,@0xfffe92:32
 128:	fe 92 
 12a:	6a 2a 00 ff 	mov.b	@0xfffb95:32,r2l
 12e:	fb 95 
 130:	ea fe       	and.b	#0xfe,r2l
 132:	6a aa 00 ff 	mov.b	r2l,@0xfffb95:32
 136:	fb 95 
 138:	6a 2a 00 ff 	mov.b	@0xfffb95:32,r2l
 13c:	fb 95 
 13e:	ca 02       	or.b	#0x2,r2l
 140:	6a aa 00 ff 	mov.b	r2l,@0xfffb95:32
 144:	fb 95 
 146:	6a 2a 00 ff 	mov.b	@0xfffe92:32,r2l
 14a:	fe 92 
 14c:	ea fc       	and.b	#0xfc,r2l
 14e:	6a aa 00 ff 	mov.b	r2l,@0xfffe92:32
 152:	fe 92 
 154:	6a f0 00 ff 	mov.b	#0x0,@0xfffe96:32
 158:	fe 96 
 15a:	6a f0 00 ff 	mov.b	#0x0,@0xfffe90:32
 15e:	fe 90 
 160:	6a f9 00 ff 	mov.b	#0x9,@0xfffe91:32
 164:	fe 91 
 166:	01 0d 07 00 	mov.l	#0x0,@er7
 16a:	01 0e 07 20 	cmp.l	#0xfffe,@er7
 16e:	ff fe 
 170:	4e 12       	bgt	.+18 (0x184)

00000172 <.L5>:
 172:	01 00 69 72 	mov.l	@er7,er2
 176:	0a 9a       	add.l	#0x1,er2
 178:	01 00 69 f2 	mov.l	er2,@er7
 17c:	01 0e 07 20 	cmp.l	#0xfffe,@er7
 180:	ff fe 
 182:	4f ee       	ble	.-18 (0x172)

00000184 <.L2>:
 184:	6a 2a 00 ff 	mov.b	@0xfffe92:32,r2l
 188:	fe 92 
 18a:	ca 30       	or.b	#0x30,r2l
 18c:	6a aa 00 ff 	mov.b	r2l,@0xfffe92:32
 190:	fe 92 
 192:	0a cf       	add.l	#0x4,er7
 194:	54 70       	rts	

00000196 <_machine_startup>:
 196:	6a 2a 00 ff 	mov.b	@0xffee50:32,r2l
 19a:	ee 50 
 19c:	ca 08       	or.b	#0x8,r2l
 19e:	6a aa 00 ff 	mov.b	r2l,@0xffee50:32
 1a2:	ee 50 
 1a4:	6a 2a 00 ff 	mov.b	@0xffee51:32,r2l
 1a8:	ee 51 
 1aa:	ea f7       	and.b	#0xf7,r2l
 1ac:	6a aa 00 ff 	mov.b	r2l,@0xffee51:32
 1b0:	ee 51 
 1b2:	5e 00 01 0c 	jsr	@0x10c:24

000001b6 <.L9>:
 1b6:	6a 2a 00 ff 	mov.b	@0xfffe94:32,r2l
 1ba:	fe 94 
 1bc:	4c f8       	bge	.-8 (0x1b6)
 1be:	01 7d 48 6f 	mov.b	#0x6f,@0xfffe93:32
 1c2:	00 ff fe 93 
 1c6:	6a 2a 00 ff 	mov.b	@0xfffe94:32,r2l
 1ca:	fe 94 
 1cc:	ea 7f       	and.b	#0x7f,r2l
 1ce:	6a aa 00 ff 	mov.b	r2l,@0xfffe94:32
 1d2:	fe 94 

000001d4 <.L10>:
 1d4:	6a 2a 00 ff 	mov.b	@0xfffe94:32,r2l
 1d8:	fe 94 
 1da:	ea 04       	and.b	#0x4,r2l
 1dc:	46 f6       	bne	.-10 (0x1d4)

000001de <.L36>:
 1de:	6a 2a 00 ff 	mov.b	@0xfffe94:32,r2l
 1e2:	fe 94 
 1e4:	4c f8       	bge	.-8 (0x1de)
 1e6:	01 7d 48 68 	mov.b	#0x68,@0xfffe93:32
 1ea:	00 ff fe 93 
 1ee:	6a 2a 00 ff 	mov.b	@0xfffe94:32,r2l
 1f2:	fe 94 
 1f4:	ea 7f       	and.b	#0x7f,r2l
 1f6:	6a aa 00 ff 	mov.b	r2l,@0xfffe94:32
 1fa:	fe 94 

000001fc <.L12>:
 1fc:	6a 2a 00 ff 	mov.b	@0xfffe94:32,r2l
 200:	fe 94 
 202:	ea 04       	and.b	#0x4,r2l
 204:	46 f6       	bne	.-10 (0x1fc)

00000206 <.L35>:
 206:	6a 2a 00 ff 	mov.b	@0xfffe94:32,r2l
 20a:	fe 94 
 20c:	4c f8       	bge	.-8 (0x206)
 20e:	01 7d 48 61 	mov.b	#0x61,@0xfffe93:32
 212:	00 ff fe 93 
 216:	6a 2a 00 ff 	mov.b	@0xfffe94:32,r2l
 21a:	fe 94 
 21c:	ea 7f       	and.b	#0x7f,r2l
 21e:	6a aa 00 ff 	mov.b	r2l,@0xfffe94:32
 222:	fe 94 

00000224 <.L14>:
 224:	6a 2a 00 ff 	mov.b	@0xfffe94:32,r2l
 228:	fe 94 
 22a:	ea 04       	and.b	#0x4,r2l
 22c:	46 f6       	bne	.-10 (0x224)

0000022e <.L34>:
 22e:	6a 2a 00 ff 	mov.b	@0xfffe94:32,r2l
 232:	fe 94 
 234:	4c f8       	bge	.-8 (0x22e)
 236:	01 7d 48 79 	mov.b	#0x79,@0xfffe93:32
 23a:	00 ff fe 93 
 23e:	6a 2a 00 ff 	mov.b	@0xfffe94:32,r2l
 242:	fe 94 
 244:	ea 7f       	and.b	#0x7f,r2l
 246:	6a aa 00 ff 	mov.b	r2l,@0xfffe94:32
 24a:	fe 94 

0000024c <.L16>:
 24c:	6a 2a 00 ff 	mov.b	@0xfffe94:32,r2l
 250:	fe 94 
 252:	ea 04       	and.b	#0x4,r2l
 254:	46 f6       	bne	.-10 (0x24c)

00000256 <.L33>:
 256:	6a 2a 00 ff 	mov.b	@0xfffe94:32,r2l
 25a:	fe 94 
 25c:	4c f8       	bge	.-8 (0x256)
 25e:	01 7d 48 6f 	mov.b	#0x6f,@0xfffe93:32
 262:	00 ff fe 93 
 266:	6a 2a 00 ff 	mov.b	@0xfffe94:32,r2l
 26a:	fe 94 
 26c:	ea 7f       	and.b	#0x7f,r2l
 26e:	6a aa 00 ff 	mov.b	r2l,@0xfffe94:32
 272:	fe 94 

00000274 <.L18>:
 274:	6a 2a 00 ff 	mov.b	@0xfffe94:32,r2l
 278:	fe 94 
 27a:	ea 04       	and.b	#0x4,r2l
 27c:	46 f6       	bne	.-10 (0x274)

0000027e <.L32>:
 27e:	6a 2a 00 ff 	mov.b	@0xfffe94:32,r2l
 282:	fe 94 
 284:	4c f8       	bge	.-8 (0x27e)
 286:	6a fd 00 ff 	mov.b	#0xd,@0xfffe93:32
 28a:	fe 93 
 28c:	6a 2a 00 ff 	mov.b	@0xfffe94:32,r2l
 290:	fe 94 
 292:	ea 7f       	and.b	#0x7f,r2l
 294:	6a aa 00 ff 	mov.b	r2l,@0xfffe94:32
 298:	fe 94 

0000029a <.L20>:
 29a:	6a 2a 00 ff 	mov.b	@0xfffe94:32,r2l
 29e:	fe 94 
 2a0:	ea 04       	and.b	#0x4,r2l
 2a2:	46 f6       	bne	.-10 (0x29a)

000002a4 <.L31>:
 2a4:	6a 2a 00 ff 	mov.b	@0xfffe94:32,r2l
 2a8:	fe 94 
 2aa:	4c f8       	bge	.-8 (0x2a4)
 2ac:	6a fa 00 ff 	mov.b	#0xa,@0xfffe93:32
 2b0:	fe 93 
 2b2:	6a 2a 00 ff 	mov.b	@0xfffe94:32,r2l
 2b6:	fe 94 
 2b8:	ea 7f       	and.b	#0x7f,r2l
 2ba:	6a aa 00 ff 	mov.b	r2l,@0xfffe94:32
 2be:	fe 94 

000002c0 <.L22>:
 2c0:	6a 2a 00 ff 	mov.b	@0xfffe94:32,r2l
 2c4:	fe 94 
 2c6:	ea 04       	and.b	#0x4,r2l
 2c8:	46 f6       	bne	.-10 (0x2c0)
 2ca:	40 26       	bra	.+38 (0x2f2)

000002cc <.L30>:
 2cc:	6a 2a 00 ff 	mov.b	@0xfffe94:32,r2l
 2d0:	fe 94 
 2d2:	4c f8       	bge	.-8 (0x2cc)
 2d4:	6a ab 00 ff 	mov.b	r3l,@0xfffe93:32
 2d8:	fe 93 
 2da:	6a 2a 00 ff 	mov.b	@0xfffe94:32,r2l
 2de:	fe 94 
 2e0:	ea 7f       	and.b	#0x7f,r2l
 2e2:	6a aa 00 ff 	mov.b	r2l,@0xfffe94:32
 2e6:	fe 94 

000002e8 <.L25>:
 2e8:	6a 2a 00 ff 	mov.b	@0xfffe94:32,r2l
 2ec:	fe 94 
 2ee:	ea 04       	and.b	#0x4,r2l
 2f0:	46 f6       	bne	.-10 (0x2e8)

000002f2 <.L54>:
 2f2:	6a 2b 00 ff 	mov.b	@0xfffe94:32,r3l
 2f6:	fe 94 
 2f8:	17 63       	extu.l	#2,er3
 2fa:	0f b2       	mov.l	er3,er2
 2fc:	ea 78       	and.b	#0x78,r2l
 2fe:	47 f2       	beq	.-14 (0x2f2)
 300:	eb 38       	and.b	#0x38,r3l
 302:	47 10       	beq	.+16 (0x314)
 304:	6a 2a 00 ff 	mov.b	@0xfffe94:32,r2l
 308:	fe 94 
 30a:	ea 87       	and.b	#0x87,r2l
 30c:	6a aa 00 ff 	mov.b	r2l,@0xfffe94:32
 310:	fe 94 
 312:	40 18       	bra	.+24 (0x32c)

00000314 <.L26>:
 314:	6a 2b 00 ff 	mov.b	@0xfffe95:32,r3l
 318:	fe 95 
 31a:	6a 2a 00 ff 	mov.b	@0xfffe94:32,r2l
 31e:	fe 94 
 320:	ea bf       	and.b	#0xbf,r2l
 322:	6a aa 00 ff 	mov.b	r2l,@0xfffe94:32
 326:	fe 94 
 328:	0c bb       	mov.b	r3l,r3l
 32a:	46 a0       	bne	.-96 (0x2cc)

0000032c <.L27>:
 32c:	6a 2a 00 ff 	mov.b	@0xffee51:32,r2l
 330:	ee 51 
 332:	ca 08       	or.b	#0x8,r2l
 334:	6a aa 00 ff 	mov.b	r2l,@0xffee51:32
 338:	ee 51 
 33a:	54 70       	rts	

0000033c <_sci4_getc>:
 33c:	6a 2b 00 ff 	mov.b	@0xfffe94:32,r3l
 340:	fe 94 
 342:	17 63       	extu.l	#2,er3
 344:	0f b2       	mov.l	er3,er2
 346:	ea 78       	and.b	#0x78,r2l
 348:	47 f2       	beq	.-14 (0x33c)
 34a:	eb 38       	and.b	#0x38,r3l
 34c:	47 12       	beq	.+18 (0x360)
 34e:	6a 2a 00 ff 	mov.b	@0xfffe94:32,r2l
 352:	fe 94 
 354:	ea 87       	and.b	#0x87,r2l
 356:	6a aa 00 ff 	mov.b	r2l,@0xfffe94:32
 35a:	fe 94 
 35c:	f8 00       	mov.b	#0x0,r0l
 35e:	54 70       	rts	

00000360 <.L57>:
 360:	6a 2b 00 ff 	mov.b	@0xfffe95:32,r3l
 364:	fe 95 
 366:	6a 2a 00 ff 	mov.b	@0xfffe94:32,r2l
 36a:	fe 94 
 36c:	ea bf       	and.b	#0xbf,r2l
 36e:	6a aa 00 ff 	mov.b	r2l,@0xfffe94:32
 372:	fe 94 
 374:	0c b8       	mov.b	r3l,r0l
 376:	54 70       	rts	

00000378 <_sci4_putc>:
 378:	6a 2a 00 ff 	mov.b	@0xfffe94:32,r2l
 37c:	fe 94 
 37e:	4c f8       	bge	.-8 (0x378)
 380:	6a a8 00 ff 	mov.b	r0l,@0xfffe93:32
 384:	fe 93 
 386:	6a 2a 00 ff 	mov.b	@0xfffe94:32,r2l
 38a:	fe 94 
 38c:	ea 7f       	and.b	#0x7f,r2l
 38e:	6a aa 00 ff 	mov.b	r2l,@0xfffe94:32
 392:	fe 94 

00000394 <.L63>:
 394:	6a 2a 00 ff 	mov.b	@0xfffe94:32,r2l
 398:	fe 94 
 39a:	ea 04       	and.b	#0x4,r2l
 39c:	46 f6       	bne	.-10 (0x394)
 39e:	54 70       	rts	
Disassembly of section .start_vector:

00000000 <.start_vector>:
   0:	00 00       	nop	
   2:	01 00       	.word	H'1,H'0
Disassembly of section .comment:

00000000 <.comment>:
   0:	00 47       	.word	H'0,H'47
   2:	43 43       	.word	H'43,H'43
   4:	3a 20       	mov.b	r2l,@0x20:8
   6:	28 47       	mov.b	@0x47:8,r0l
   8:	4e 55       	.word	H'4e,H'55
   a:	29 20       	mov.b	@0x20:8,r1l
   c:	34 2e       	mov.b	r4h,@0x2e:8
   e:	33 2e       	mov.b	r3h,@0x2e:8
  10:	32 00       	mov.b	r2h,@0x0:8
/usr/home/uch/os/w/tools/bin/h8300-elf-objcopy -Osrec  test.elf test.mot
../../h8sxwrite/h8sxwrite -f 12 -d 0 -m 0 test.mot
Output Device [ugen0]
H8SX Input Clock [12MHz]
MDCLK = 0
Send file [test.mot]: 1908 byte
vendor: 045b product: 0025
Flash memory size = 0x524288 byte
1905 byte. start addr=100
write 927/524288 byte
Success.

Compilation finished at Thu Apr  8 20:58:01


エコーバックを確認。

$ tip hmon38400
connected
ohayo
awefjaijjfejjoijoijawefa;woeifja;woeifja;owiejf;oaiwejf;oaiwejf;oaiwejf;oaiwejf;oaiwejf;oaiwejfo;aiwjefo;iawejf;ija;oiwejf;oiajwef;oia;oieaioj;fwe;oijfajio;we;iojaioj;dahojaoijeofiajweoifj