M16Cの開発:C言語使用で割り込みを使用する場合のコード変更
関連記事
- 働く人の「ストレスチェック」、全事業所に義務拡大へ…昨年度の労災認定は過去最多の883人 【2024年10月11日(金)】
- 那須ハイランドパークの「時給2500円」バイトに応募殺到、10人の枠に100人超が応募 【2024年08月06日(火)】
- 荒っぽい見積書が出来たところでごわす 【2024年08月01日(木)】
- 新入社員4割が転職検討 引き留めに企業が対策 【2024年05月08日(水)】
- 【#C #CPP】謎不具合を追っかけてた.なんとなく原因は分かったけど... 【2024年04月02日(火)】
どっぷり3時間ハマった
ハマった方がこれ以上でないことを祈って,書いておきますです
いや,M16CのUART(シリアル通信)を使おうとしておりましたわ
受信時は,割り込みで処理させようかと?
参考にしたのはこちら
M16C/62のシリアルサンプルプログラム3(シリアル受信(割り込みあり))@0N0の電脳壁新聞
んが,アセンブラファイルsect30.incを書き換えても,ダミー割り込みだけかかって,どうしようもない状況
メモリを覗いても,割り込みベクタが書きこまれている雰囲気がなく(大汗
なんでやぁ~~ってなったけど,原因判明...
sect30.incの割り込みベクタテーブルの前後にかかっている
ifマクロをコメントアウトしないといけないらしい(隕石爆
こんな感じ
;.if 0 <<-ここコメント!!!!!!
.lword dummy_int ; vector 0 BRK
.lword dummy_int ; vector 1
.lword dummy_int ; vector 2
.lword dummy_int ; vector 3
.lword dummy_int ; vector 4 (for user) int3
.lword dummy_int ; vector 5 (for user) timerB5
.lword dummy_int ; vector 6 (for user) timerB4
.lword dummy_int ; vector 7 (for user) timerB3
.lword dummy_int ; vector 8 (for user) si/o4/int5
.lword dummy_int ; vector 9 (for user) si/o3/int4
.lword dummy_int ; vector 10 (for user) Bus collision detection
.lword dummy_int ; vector 11 (for user) DMA0
.lword dummy_int ; vector 12 (for user) DMA1
.lword dummy_int ; vector 13 (for user) Key input interrupt
.lword dummy_int ; vector 14 (for user) A-D
.lword dummy_int ; vector 15 (for user) uart2 transmit
.lword dummy_int ; vector 16 (for user) uart2 receive
.lword dummy_int ; vector 17 (for user) uart0 transmit
.glb _bmreceive ; <<---C言語側割り込み受け入れ関数
.lword _bmreceive ; vector 18 (for user) uart0 receive <<---ベクタテーブルに登録
.lword dummy_int ; vector 19 (for user) uart1 transmit
.lword dummy_int ; vector 20 (for user) uart1 receive
.lword dummy_int ; vector 21 (for user) timer A0
.lword dummy_int ; vector 22 (for user) timer A1
.lword dummy_int ; vector 23 (for user) timer A2
.lword dummy_int ; vector 24 (for user) timer A3
.lword dummy_int ; vector 25 (for user) timer A4
.lword dummy_int ; vector 26 (for user) timer B0
.lword dummy_int ; vector 27 (for user) timer B1
.lword dummy_int ; vector 28 (for user) timer B2
.lword dummy_int ; vector 29 (for user) int0
.lword dummy_int ; vector 30 (for user) int1
.lword dummy_int ; vector 31 (for user) int2
.lword dummy_int ; vector 32 (for user or MR30)
.lword dummy_int ; vector 33 (for user or MR30)
.lword dummy_int ; vector 34 (for user or MR30)
.lword dummy_int ; vector 35 (for user or MR30)
.lword dummy_int ; vector 36 (for user or MR30)
.lword dummy_int ; vector 37 (for user or MR30)
.lword dummy_int ; vector 38 (for user or MR30)
.lword dummy_int ; vector 39 (for user or MR30)
.lword dummy_int ; vector 40 (for user or MR30)
.lword dummy_int ; vector 41 (for user or MR30)
.lword dummy_int ; vector 42 (for user or MR30)
.lword dummy_int ; vector 43 (for user or MR30)
.lword dummy_int ; vector 44 (for user or MR30)
.lword dummy_int ; vector 45 (for user or MR30)
.lword dummy_int ; vector 46 (for user or MR30)
.lword dummy_int ; vector 47 (for user or MR30)
.lword dummy_int ; vector 48
.lword dummy_int ; vector 49
.lword dummy_int ; vector 50
.lword dummy_int ; vector 51
.lword dummy_int ; vector 52
.lword dummy_int ; vector 53
.lword dummy_int ; vector 54
.lword dummy_int ; vector 55
.lword dummy_int ; vector 56
.lword dummy_int ; vector 57
.lword dummy_int ; vector 58
.lword dummy_int ; vector 59
.lword dummy_int ; vector 60
.lword dummy_int ; vector 61
.lword dummy_int ; vector 62
.lword dummy_int ; vector 63
;.endif <<-ここコメント!!!!!!!!
[/c]
ちょっ!ちゃんとドキュメントに書いておいてくださいヨォ~~>ルネサスさん
罠が仕掛けてありすぎやじ>マイコン開発
ってことで,通信系上位部の実装にめどが付いたり...
いや,昨夜まで,マイコン@M16C,全く動いてなかったのであった...
その原因が,出力すべきUARTチャネルを間違えていたという,同しようもないミス(隕石爆
同じルネサスでもH(日立)系、M(三菱)系、V(NEC)系などで品質体制や完成度や
くせみたいなモノは全然違いますからね
合弁会社の定めでごわす
>>ラード さま
ドキュメント,どれを見ればいいのか,よぉ~判らんじ
なんども立ち往生でしたわん(笑
さすがに慣れてきたけど♪
同じ目にあった人がいて、救われました。
2日悩みました。
割り込み許可した途端に動作がおかしくなるので、ベクターテーブル設定見直したら。。。。
>>なべ3 ミニカー買ってください。 さま
最近はマイコン開発から完全に手を引いたオイラです(笑
ハマってしまいましたかぁ...ご愁傷さまです(大汗
ルネサスもマチっとドキュメントを整備せんといかんハズ