[H8-ML(4501)] SRAM増設時のSUBファイル等の設定について行き詰まりました
From: "Yuki WAKUDA" <wakuchin@xxxxxxxxxxxx>
Date: 2004年02月22日(日)22時40分42秒
初めて投稿させて頂きます.wakuと申します.
すごくかなり長文・駄文ですみません.

 これまで,H8 3048fの4kbyteのRAMに,限界を感じ,ひっそりとSRAM増設を試みてきました.
その過程でこれまで少しづつ全くわからなかったマイコンのことが分かってきて,マニュアルの言っている意味が徐々に理解できるようになってき
ており,少しでも前に進めるうちはできるだけ自力で解決しようと思っていたのですが..
 ここにきて,どうしても前に進めなくなってしまいました.思いつくことをあれやこれやと試したのですが,全く検討がつかず,自力では無理を
感じてしまいMLの力を借りようと思った次第です....(;-公-)
過去ログなどを見たりして,いろいろと試したのですが,うまく動作しません.
よろしくご教授をお願いいたします.

環境は,色々試したのですが,

まず最初は,Aki-USB開発kitにてモニタプログラムを書き込んだりしていました.SRAMの配線も合体ロボ型で組んで試していたのですが,
モニタで,"f 20000 20100 55"
等のコマンドで書き込んでみても,エラーが出てどうしてもうまくいかず,分からないので,
もう一機普通の秋月H8 3048マザーボードを買ってきて,同様にSRAMの配線をして比べてみて,やっとAki - H8 3048 のUSB開発kitでは,P3-0〜7
(D8〜D15)がUSBに使われてしまっていることに気付きました.

USBキットでのSRAM増設改造は,前例はあるものの,自分の知識では無理(or相当な時間がかかり)そうなので,まずは情報も多いシリアル通信で
の(通常の秋月マザーボードを使っての)SRAM増設とシリアル通信を試みるように方針を変更しました.

こちらでは,モニタを埋め込んでみて,MコマンドやFコマンドを使って増設したSRAMに無事書き込み,Dコマンドで再度正確に読み出しが出来たの
で,すんなり行くだろうと思っていたのですが.(ここまでも長かったのですが,,ML過去ログをかなり参考にさせていただきました.)

ここからが壁でした.
windowsでの秋月付属のCコンパイラで行っていますが,RAM領域が変わったことをどこでどのように設定してよいのか全くわかりません.

色々試したのですが,どうしてもわからないのでおかしいところがあれば,アドバイスいただけないでしょうか?

増設するSRAMはHM628128DLP5で1Mbitサイズなのでモード5での動作を考えています.
SRAMの配線は,
    SRAM = H8 3048
    A0〜7 = P1-0〜7
    A8〜15 = P2-0〜7
    A16 = P5-0
    IO0〜7 = P3-0〜7(D8〜D15)
    CS1 = P8-3
    OE = P6-4
    WE = P6-5
    CS2 = P8-2
    その他GNDとVcc
という,至って普通な配線かと思います.
2タイプ試したことと,SRAM増設しない設定では正常に動作することから,配線間違いは無いと思います.

今成功しているファイルは,以下にずらずらと(すみません)示すファイル.SUBと.ASMファイルですが,
これをSRAM増設に対応させるには,この0FEF10をモード5の動作にて20000番地に入れ替えればよいのかなと思い,
START R(20000),P(200),D(8000),C(9000)や,
START R(20000),P(20200),D(28000),C(29000)や,
などいろいろやったのですが,どのようにしても確保する変数は内蔵RAM領域に確保されているような感じです(∵確保する変数の量を変えてみる
と,4kbyteが限界のような振る舞いをします).
mainプログラム中では,int    X[500];といった配列変数を確保しようとしています.int    X[1100];などと確保しようとすると固まります..
これはint=4byteなので,500個で約2kbyteであるが,1100個では約4.4kbyteであることから,RAM領域に確保できないと認識しておりますが.

#########usbtest.sub######
OUTPUT usbtest
PRINT usbtest
INPUT start,main,sci,lcd
LIB U:\Nijsseni\h8\wakuchin\c38hab
START R(0FEF10),P(200),D(8000),C(9000);←ここをいろいろと変えてみたのですが.
ROM (D,R)
EXIT
########################

#########start.asm#######
 .CPU 300HA
 .SECTION V,CODE,LOCATE=H'000000

 ; RAM用初期化ここからは自分で勝手に加えたSRAM初期化のコードです

 ABWCR:  .EQU H'FFFEC
 ASTCR:  .EQU H'FFFED
 WCR:  .EQU H'FFFEE
 WCER:  .EQU H'FFFEF
 P1_DDR:  .EQU H'FFFC0
 P2_DDR:  .EQU H'FFFC1
 P5_DDR:  .EQU H'FFFC8
 P8_DDR:  .EQU H'FFFCD

 MOV.B #H'FF,R0L
 MOV.B R0L, @ABWCR:8  ; CS1領域バス幅8ビット(P4:D0-D7)
 MOV.B #H'FF,R0L
 MOV.B R0L,@ASTCR:8  ; CS1領域3ステートアクセス
 MOV.B #H'F0,R0L
 MOV.B R0L,@WCR:8  ; 0wait
 MOV.B #H'FF,R0L
 MOV.B R0L,@P1_DDR:8  ; P1をアドレスバス(A0-A7)
 MOV.B R0L,@P2_DDR:8  ; P2をアドレスバス(A8-A15)
 MOV.B R0L,@P5_DDR:8  ; P5をアドレスバス(A16-A19)
 MOV.B #H'E8,R0L
 MOV.B R0L,@P8_DDR:8  ; P8-3 CS1出力
;ここまでが勝手に加えたSRAM初期化コードです.この場所も疑問があるのですが..

 .IMPORT _main

 .DATA.L  _start  ;リセットベクトル
 .DATA.L  int_error
 .DATA.L  int_error
 .DATA.L  int_error

 .DATA.L  int_error
 .DATA.L  int_error
 .DATA.L  int_error
 .DATA.L  int_error

 .DATA.L  int_error
 .DATA.L  int_error
 .DATA.L  int_error
 .DATA.L  int_error

IRQ0: .DATA.L  int_error
IRQ1: .DATA.L  int_error
IRQ2: .DATA.L  int_error
IRQ3: .DATA.L  int_error
IRQ4: .DATA.L  int_error
;----------------------------------------------------------
 .SECTION P,CODE,ALIGN=2
_start:
 mov.l #H'0FFF10,er7
; mov.l #H'21100,er7
;↑この部分があやしいと思い,このような行に色々と入れ替えてみたのですが・・・だめでした
;初期化付きデータを使用する場合、RAMに転送する
 mov.l #H'8000, er0   ; 転送元(8000)
 mov.l #H'0FEF10, er1   ; 転送先
; mov.l #H'20100, er1   ; 転送先
;↑この部分が怪しいと思い,このような行に色々と入れ替えてみたのですが・・・だめでした
 mov.l #DATA_END, er2   ; 転送終了
init_loop:
 cmp.l er1, er2
 beq init_end
  mov.b @er0+, r3l
 mov.b r3l, @er1
 inc.l #1, er1
 bra init_loop
init_end:
 jsr @_main

; 割り込み未使用
int_error:
 rte

;usb_interrupt:
; push.l er0
; push.l er1
; push.l er2
; push.l er3
; push.l er4
; push.l er5
;; push.l er6
; jsr @_usb_int
; pop.l er6
; pop.l er5
; pop.l er4
; pop.l er3
; pop.l er2
; pop.l er1
;; pop.l er0
; rte
;----------------------------------------------------------
; 割り込み許可、禁止ルーチン
 .EXPORT _EnableInterrupt,_DisableInterrupt
_EnableInterrupt:
 andc.b #H'3f,ccr
 rts
_DisableInterrupt:
 orc.b #H'c0,ccr
 rts
;----------------------------------------------------------
 .SECTION D,DATA
 .SECTION B,DATA
DATA_END: .RES.W  1
 .END
##########

どこが不要な部分かわからないので,全部載せてしまいました.

リンク時に生成されるMAPを見ると,
最後に添付しているようになっておりますが,Rセクションと,Bセクションが外部RAM領域に割り当てられているのですが,Rセクションでは,トー
タルADDRES=0になっていますし,main.c内にてint    x[10000]といったような大きなファイルを確保しても,MAPファイルには何も変化がありませ
ん..
main.c内の大きな変数確保がRセクションで行わなければならないのかと思っているのですが..

長いと思いましたが,一応MAPファイルも添付させて頂きます.
自分の知識量がまだ少ない為,どんな小さなことでもかなり参考になると思いますのでお願いします.

waku
wakuchin@xxxxxxxxxxxx


以下usbtest.MAPです,長くてすみません.
###############usbtest.MAP######
                                        H8/300H LINKAGE EDITOR (Evaluation
software) Ver.1.0


LINK COMMAND LINE
LNK -subcommand=usbtest.sub
LINK SUBCOMMANDS

OUTPUT usbtest
PRINT usbtest
INPUT start,main,sci,lcd
LIB D:\H8\akic\c38hab
START R(20000),P(200),D(8000),C(9000)
ROM (D,R)
EXIT

                                  H8/300H LINKAGE EDITOR (Evaluation
software) Ver.1.0   PAGE :     1
                                        ***     LINKAGE EDITOR LINK MAP LIST

SECTION   NAME                       START      -      END         LENGTH
                                                              UNIT NAME
MODULE NAME

ATTRIBUTE  :   CODE  NOSHR

V                                 H'00000000    -    H'0000005B   H'0000005C
                                                              start
start

* TOTAL ADDRESS *                 H'00000000    -    H'0000005B   H'0000005C

ATTRIBUTE  :   CODE  NOSHR

P                                 H'00000200    -    H'00000233   H'00000034
                                                              start
start
                                  H'00000234    -    H'000005D5   H'000003A2
                                                              main
main
                                  H'000005D6    -    H'000006A7   H'000000D2
                                                              sci
sci
                                  H'000006A8    -    H'000008E5   H'0000023E
                                                              lcd
lcd
                                  H'000008E6    -    H'00000943   H'0000005E
                                                              sprintf
sprintf
                                  H'00000944    -    H'00000973   H'00000030
                                                              vsprintf
vsprintf
                                  H'00000974    -    H'00000C4D   H'000002DA
                                                              addd3
addd3
                                  H'00000C4E    -    H'00000CC7   H'0000007A
                                                              dtol3
dtol3
                                  H'00000CC8    -    H'00000CFD   H'00000036
                                                              itod3
itod3
                                  H'00000CFE    -    H'00000FEB   H'000002EE
                                                              muld3
muld3
                                  H'00000FEC    -    H'0000100D   H'00000022
                                                              spregld3
spregld3
                                  H'0000100E    -    H'00001035   H'00000028
                                                              spregsv3
spregsv3
                                  H'00001036    -    H'00002DE3   H'00001DAE
                                                              _fmtout
_fmtout
                                  H'00002DE4    -    H'000031C9   H'000003E6
                                                              _dti
_dti
                                  H'000031CA    -    H'0000336D   H'000001A4
                                                              _its
_its
                                  H'0000336E    -    H'000033C7   H'0000005A
                                                              memcpy
memcpy
                                  H'000033C8    -    H'000033E3   H'0000001C
                                                              strlen
strlen
                                  H'000033E4    -    H'00003409   H'00000026
                                                              divl3
divl3
                                  H'0000340A    -    H'00003445   H'0000003C
                                                              divul3
divul3



                                  H8/300H LINKAGE EDITOR (Evaluation
software) Ver.1.0   PAGE :     2

                                        ***     LINKAGE EDITOR LINK MAP LIST
***


SECTION   NAME                       START      -      END         LENGTH
                                                              UNIT NAME
MODULE NAME


ATTRIBUTE  :   CODE  NOSHR

P                                 H'00003446    -    H'00003465   H'00000020
                                                              mull3
mull3
                                  H'00003466    -    H'00003483   H'0000001E
                                                              mv83
mv83
                                  H'00003484    -    H'00003491   H'0000000E
                                                              ned3
ned3
                                  H'00003492    -    H'000034B9   H'00000028
                                                              _allzero
_allzero
                                  H'000034BA    -    H'000035B1   H'000000F8
                                                              _calcnpw
_calcnpw
                                  H'000035B2    -    H'00003655   H'000000A4
                                                              _log10
_log10
                                  H'00003656    -    H'000036CD   H'00000078
                                                              _lsfts
_lsfts
                                  H'000036CE    -    H'000036FB   H'0000002E
                                                              _pow5
_pow5
                                  H'000036FC    -    H'00003775   H'0000007A
                                                              _rsfts
_rsfts
                                  H'00003776    -    H'00003821   H'000000AC
                                                              _sub
_sub
                                  H'00003822    -    H'000038C5   H'000000A4
                                                              _unpack
_unpack
                                  H'000038C6    -    H'00003903   H'0000003E
                                                              memcmp
memcmp
                                  H'00003904    -    H'000039BF   H'000000BC
                                                              cmpd3
cmpd3
                                  H'000039C0    -    H'00003A47   H'00000088
                                                              _mult64
_mult64
                                  H'00003A48    -    H'00003BA9   H'00000162
                                                              _power
_power
                                  H'00003BAA    -    H'00003C93   H'000000EA
                                                              _rnd
_rnd
                                  H'00003C94    -    H'00003D2F   H'0000009C
                                                              _setsbit
_setsbit
                                  H'00003D30    -    H'00003E35   H'00000106
                                                              frexp
frexp
                                  H'00003E36    -    H'00003F6B   H'00000136
                                                              modf
modf
                                  H'00003F6C    -    H'00003F8D   H'00000022
                                                              dslc3
dslc3
                                  H'00003F8E    -    H'00003FAF   H'00000022
                                                              dsruc3
dsruc3
                                  H'00003FB0    -    H'00004001   H'00000052
                                                              _duchek
_duchek
                                  H'00004002    -    H'00004053   H'00000052
                                                              _lsft
_lsft



                                  H8/300H LINKAGE EDITOR (Evaluation
software) Ver.1.0   PAGE :     3

                                        ***     LINKAGE EDITOR LINK MAP LIST
***


SECTION   NAME                       START      -      END         LENGTH
                                                              UNIT NAME
MODULE NAME


ATTRIBUTE  :   CODE  NOSHR

P                                 H'00004054    -    H'000041E1   H'0000018E
                                                              _mult
_mult
                                  H'000041E2    -    H'0000427D   H'0000009C
                                                              _pow10
_pow10
                                  H'0000427E    -    H'00004289   H'0000000C
                                                              eqd3
eqd3
                                  H'0000428A    -    H'00004299   H'00000010
                                                              ltd3
ltd3
                                  H'0000429A    -    H'000042E1   H'00000048
                                                              _add
_add
                                  H'000042E2    -    H'00004311   H'00000030
                                                              memset
memset

* TOTAL ADDRESS *                 H'00000200    -    H'00004311   H'00004112


ATTRIBUTE  :   DATA  NOSHR ROM

D                                 H'00008000    -    H'00008000   H'00000000
                                                              start
start

* TOTAL ADDRESS *                 H'00008000    -    H'00008000   H'00000000


ATTRIBUTE  :   DATA  NOSHR

C                                 H'00009000    -    H'0000907D   H'0000007E
                                                              main
main
                                  H'0000907E    -    H'00009085   H'00000008
                                                              _fmtout
_fmtout
                                  H'00009086    -    H'00009185   H'00000100
                                                              _ctype
_ctype
                                  H'00009186    -    H'0000920D   H'00000088
                                                              _its
_its
                                  H'0000920E    -    H'00009215   H'00000008
                                                              _log10
_log10
                                  H'00009216    -    H'000092F5   H'000000E0
                                                              _pow5
_pow5
                                  H'000092F6    -    H'000093F9   H'00000104
                                                              _power
_power
                                  H'000093FA    -    H'00009401   H'00000008
                                                              frexp
frexp
                                  H'00009402    -    H'00009409   H'00000008
                                                              modf
modf

* TOTAL ADDRESS *                 H'00009000    -    H'00009409   H'0000040A




                                  H8/300H LINKAGE EDITOR (Evaluation
software) Ver.1.0   PAGE :     4

                                        ***     LINKAGE EDITOR LINK MAP LIST
***


SECTION   NAME                       START      -      END         LENGTH
                                                              UNIT NAME
MODULE NAME


ATTRIBUTE  :   DATA  NOSHR RAM

R                                 H'00020000    -    H'00020000   H'00000000
                                                              start
start

* TOTAL ADDRESS *                 H'00020000    -    H'00020000   H'00000000


ATTRIBUTE  :   DATA  NOSHR

B                                 H'00020000    -    H'00020001   H'00000002
                                                              start
start
                                  H'00020002    -    H'00020041   H'00000040
                                                              main
main
                                  H'00020042    -    H'00020091   H'00000050
                                                              sci
sci
                                  H'00020092    -    H'000200D1   H'00000040
                                                              lcd
lcd
                                  H'000200D2    -    H'0002010D   H'0000003C
                                                              _fmtout
_fmtout
                                  H'0002010E    -    H'0002010F   H'00000002
                                                              _errno
_errno

* TOTAL ADDRESS *                 H'00020000    -    H'0002010F   H'00000110



                                  H8/300H LINKAGE EDITOR (Evaluation
software) Ver.1.0   PAGE :     1

                                      ***  LINKAGE EDITOR EXTERNALLY DEFINED
SYMBOLS LIST  ***

                                 SYMBOL  NAME                         ADDR
TYPE

                                  $ADDD$3
H'00000A3E           DAT
                                  $CMPD$3
H'00003904           DAT
                                  $DIVL$3
H'000033E4           DAT
                                  $DIVUL$3
H'0000340A           DAT
                                  $DSLC$3
H'00003F6C           DAT
                                  $DSRUC$3
H'00003F8E           DAT
                                  $DTOL$3
H'00000C4E           DAT
                                  $EQD$3
H'0000427E           DAT
                                  $ITOD$3
H'00000CC8           DAT
                                  $LTD$3
H'0000428A           DAT
                                  $MULD$3
H'00000DB4           DAT
                                  $MULL$3
H'00003446           DAT
                                  $MV8$3
H'00003466           DAT
                                  $NED$3
H'00003484           DAT
                                  $SUBD$3
H'00000A0E           DAT
                                  $sp_regld$3
H'00000FEC           DAT
                                  $sp_regsv$3
H'0000100E           DAT
                                  _ClearLCD
H'000007C6           ENT
                                  _DisableInterrupt
H'00000230           DAT
                                  _EnableInterrupt
H'0000022C           DAT
                                  _GetSCI
H'00000606           ENT
                                  _GetSW
H'00000526           ENT
                                  _H8init
H'0000054C           ENT
                                  _InitLCD
H'00000756           ENT
                                  _InitSCI
H'000005D6           ENT
                                  _LCDOut4
H'000006FE           ENT
                                  _LocateLCD
H'00000806           ENT
                                  _PrintLCD
H'0000082A           ENT
                                  _PrintSCI
H'00000626           ENT
                                  _PutLCD
H'000007DA           ENT
                                  _PutSCI
H'000005F6           ENT
                                  _ScanSCI
H'00000616           ENT
                                  _SetLED
H'000004D8           ENT
                                  __add
H'0000429A           ENT
                                  __allzero
H'00003492           ENT
                                  __calcnpw
H'000034BA           ENT
                                  __ctype
H'00009086           DAT
                                  __dti
H'00002DE4           ENT
                                  __duchek
H'00003FB0           ENT
                                  __errno
H'0002010E           DAT
                                  __fmtout
H'00001036           ENT
                                  __its
H'000031CA           ENT
                                  __log10
H'000035B2           ENT
                                  __lsft
H'00004002           ENT
                                  __lsfts
H'00003656           ENT
                                  __mult
H'00004054           ENT
                                  __mult64
H'000039C0           ENT
                                  __pow10
H'000041E2           ENT
                                  __pow5
H'000036CE           ENT
                                  __power
H'00003A48           ENT
                                  __rnd
H'00003BAA           ENT



                                  H8/300H LINKAGE EDITOR (Evaluation
software) Ver.1.0   PAGE :     2

                                      ***  LINKAGE EDITOR EXTERNALLY DEFINED
SYMBOLS LIST  ***

                                 SYMBOL  NAME                         ADDR
TYPE

                                  __rsfts
H'000036FC           ENT
                                  __setsbit
H'00003C94           ENT
                                  __sub
H'00003776           ENT
                                  __unpack
H'00003822           ENT
                                  _frexp
H'00003D30           ENT
                                  _getad
H'00000580           ENT
                                  _initSRAM
H'00000554           ENT
                                  _main
H'00000234           ENT
                                  _memcmp
H'000038C6           ENT
                                  _memcpy
H'0000336E           ENT
                                  _memset
H'000042E2           ENT
                                  _modf
H'00003E36           ENT
                                  _sprintf
H'000008E6           ENT
                                  _strlen
H'000033C8           ENT
                                  _timer_init
H'000005A6           ENT
                                  _vsprintf
H'00000944           ENT
                                  _wait
H'000005B8           ENT
                                  _wait_ad
H'0000056E           ENT

スレッド概略
[表示中](起点)
 └[4502(1)]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]