まったりとCR85整備。ひらすら洗浄。タイヤは今回から前後YCXに

ルーターテーブルのフェンス移動ハンドルのノブを作り直しました。これも家 の桜から。木工旋盤は木工機械の中では、とても静かで気軽に廻しやすい。 ちょっと練習に廻してみたら結局作ってしまった。やはりこの形が親指がくび れの部分にフィットしていい感じ。
木工旋盤がなんとなく嫌だったのが、バイトを手で移動すること。怖いなと思っ ていたのだけど、チャックされるのは木なので、いざという時はワークがふっ とばされるのでそんなに心配することなかった。

Interface 2010/6号付録SH-2A基板を動かしてみます。とりあえずWindows XPに HEW入れてLED点滅プログラムをビルドして動くのを確認。まずはgcc環境を。
リンカスクリプト。このローダではRAMのスタートは0x1c000500じゃないとだめ みたい。

ルーターテーブルのフェンス移動ハンドルのノブを作り直しました。これも家 の桜から。木工旋盤は木工機械の中では、とても静かで気軽に廻しやすい。 ちょっと練習に廻してみたら結局作ってしまった。やはりこの形が親指がくび れの部分にフィットしていい感じ。
木工旋盤がなんとなく嫌だったのが、バイトを手で移動すること。怖いなと思っ ていたのだけど、チャックされるのは木なので、いざという時はワークがふっ とばされるのでそんなに心配することなかった。

Interface 2010/6号付録SH-2A基板を動かしてみます。とりあえずWindows XPに HEW入れてLED点滅プログラムをビルドして動くのを確認。まずはgcc環境を。
リンカスクリプト。このローダではRAMのスタートは0x1c000500じゃないとだめ みたい。
OUTPUT_FORMAT ("elf32-sh")
OUTPUT_ARCH (sh)
MEMORY {
start_vector : o = 0x1c000000, l = 0x4
ram : o = 0x1c000500, l = 0x7ff00
}
SECTIONS {
.start_vector :
{
*(.vector)
} > start_vector
.text :
{
*(.text*)
*(.rodata*)
. = ALIGN (4);
} > ram
}
入口はこんなで。スタックは設定したけれど使ってない。
// Simple entry routine. .align 2 .section .start_vector, "a" .long start .align 2 .section .text .global start start: mov.l .L_stack_start, sp mov.l .L_startup, r0 1: jmp @r0 nop bra 1b .align 2 .L_stack_start: .long 0x1c004000 .L_startup: .long _startupオンボードのLEDを点灯してそのまま。
typedef unsigned short int uint16_t;
void
startup ()
{
#define PCIOR0 ((volatile uint16_t *)0xfffe3852)
#define PCCR2 ((volatile uint16_t *)0xfffe384a)
#define PCDR ((volatile uint16_t *)0xfffe3856)
*PCCR2 &= ~0x3; // PC8
*PCIOR0 |= (1 << 8); // PC8 output
*PCDR &= ~(1 << 8); // LED on
while (/*CONSTCOND*/1)
;
}
Makefileは
include ../../../mk/local_conf.mk
SHELL = /bin/sh
GNUARCH = sh-elf
PREFIX = ${TOOLDIR}/bin/${GNUARCH}
AS = ${PREFIX}-gcc
CPP = ${PREFIX}-cpp
CC = ${PREFIX}-gcc
C++ = ${PREFIX}-g++
LD = ${PREFIX}-ld
OBJCOPY = ${PREFIX}-objcopy
OBJDUMP = ${PREFIX}-objdump
NM = ${PREFIX}-nm
AR = ${PREFIX}-ar
RANLIB = ${PREFIX}-ranlib
CFLAGS = -m2a -fomit-frame-pointer -Wall -Werror
ASFLAGS = -m2a -Wall -Werror
DEPEND_DIR = .deps
DEPEND_UPDATE = -Wp,-MD,$(DEPEND_DIR)/$(*F).P
.c.o:
${CC} ${CFLAGS} ${DEPEND_UPDATE} -c -o $@ $<
.S.o:
${AS} ${INCLUDES} ${ASFLAGS} ${DEPEND_UPDATE} -c -o $@ $<
OBJS = entry.o main.o
PROG = test.elf
PROGBASENAME = ${basename ${PROG}}
all: ${PROG}
clean:
rm -f ${OBJS} ${PROGBASENAME}.*
rm -rf ${DEPEND_DIR}
${PROG}: ${OBJS}
${LD} -T ldscript -o ${PROG} ${OBJS}
${OBJDUMP} -x ${PROG}
${OBJDUMP} -D ${PROG}
DEPS_MAGIC := ${shell mkdir ${DEPEND_DIR} > /dev/null 2>&1 || :}
-include ${DEPEND_DIR}/*.P
でSH2A用に-m2aを指定。これコンパイルしてみると...おぉ、movi20使ってます
ね。(sh-elf-gcc (GCC) 4.3.2)
1c000500 <start>: 1c000500: df 02 mov.l 1c00050c <start+0xc>,r15 ! 1c004000 1c000502: d0 03 mov.l 1c000510 <start+0x10>,r0 ! 1c000514 <_startup> 1c000504: 40 2b jmp @r0 1c000506: 00 09 nop 1c000508: af fc bra 1c000504 <start+0x4> 1c00050a: 00 09 nop 1c00050c: 1c 00 mov.l r0,@(0,r12) 1c00050e: 40 00 shll r0 1c000510: 1c 00 mov.l r0,@(0,r12) 1c000512: 05 14 mov.b r1,@(r0,r5) 1c000514 <_startup>: 1c000514: 03 e0 38 52 movi20 #-116654,r3 1c000518: 01 e0 38 52 movi20 #-116654,r1 1c00051c: 61 11 mov.w @r1,r1 1c00051e: 62 1d extu.w r1,r2 1c000520: 01 00 01 00 movi20 #256,r1 1c000524: 21 2b or r2,r1 1c000526: 61 1d extu.w r1,r1 1c000528: 23 11 mov.w r1,@r3 1c00052a: 03 e0 38 4a movi20 #-116662,r3 1c00052e: 01 e0 38 4a movi20 #-116662,r1 1c000532: 61 11 mov.w @r1,r1 1c000534: 61 1d extu.w r1,r1 1c000536: 02 00 ff f0 movi20 #65520,r2 1c00053a: 21 29 and r2,r1 1c00053c: 23 11 mov.w r1,@r3 1c00053e: 03 e0 38 56 movi20 #-116650,r3 1c000542: 01 e0 38 56 movi20 #-116650,r1 1c000546: 61 11 mov.w @r1,r1 1c000548: 61 1d extu.w r1,r1 1c00054a: 02 00 ff fe movi20 #65534,r2 1c00054e: 21 29 and r2,r1 1c000550: 23 11 mov.w r1,@r3 1c000552: af fe bra 1c000552 <_startup+0x3e> 1c000554: 00 09 nop ... ????? .start_vector ???????: 1c000000 <.start_vector>: 1c000000: 1c 00 mov.l r0,@(0,r12) 1c000002: 05 00 .word 0x0500これをHEWからダウンロードして実行を確認。
























































































































































最近のコメント