LPC2368実験ボードを用意したので、ソフトの方の作業中。とりあえず、TOPPERS/JSPのsample1を動かしました。
LPC2368とLPC2388は、どちらも同じユーザマニュアルで説明されているくらいで、ピン数は違っても、基本的にレジスタのアドレスは同じようです。Keilのサイトにあるヘッダファイルもlpc23xx.hという名前になっていて、共通で使えるようです。このヘッダ、NXPの方で探してもどこにあるかわからなかったです。
さて、レジスタのアドレスは同じでも、ピン数やピン割り当てが違うデバイスを同じように操作できるわけではないので、レジスタの値の意味が異なるものがあることになります。その代表がPINSELxで、各ピンの機能割り当てを設定するレジスタです。しかし、とりあえずJSPとsample1を動かすのに必要なUSARTのRXD0/TXD0についてはPINSEL0の同じビット位置に割り当てられているので、設定は共通でかまわないことが判明。TIMERも必要ですが、こちらは外部端子を使う必要なないので、PINSELを意識する必要は無し。よって、こちらもLPC2388のコードをそのまま流用可能。結局、sample1を動かすには、メモリの配置をリンカ・スクリプトに反映することと、それにともなってスタックの初期値を変更する程度の作業で動かせました。
LPC2368とLPC2388は、どちらも同じユーザマニュアルで説明されているくらいで、ピン数は違っても、基本的にレジスタのアドレスは同じようです。Keilのサイトにあるヘッダファイルもlpc23xx.hという名前になっていて、共通で使えるようです。このヘッダ、NXPの方で探してもどこにあるかわからなかったです。
さて、レジスタのアドレスは同じでも、ピン数やピン割り当てが違うデバイスを同じように操作できるわけではないので、レジスタの値の意味が異なるものがあることになります。その代表がPINSELxで、各ピンの機能割り当てを設定するレジスタです。しかし、とりあえずJSPとsample1を動かすのに必要なUSARTのRXD0/TXD0についてはPINSEL0の同じビット位置に割り当てられているので、設定は共通でかまわないことが判明。TIMERも必要ですが、こちらは外部端子を使う必要なないので、PINSELを意識する必要は無し。よって、こちらもLPC2388のコードをそのまま流用可能。結局、sample1を動かすには、メモリの配置をリンカ・スクリプトに反映することと、それにともなってスタックの初期値を変更する程度の作業で動かせました。