[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
(toppers-users 3128) Re: cq_starmのCFGについて
- To: users at toppers jp
- From: koizumi yoshiyuki <koizumiyoshiyuki at gmail com>
- Date: Wed, 31 Mar 2010 09:27:41 +0900
小南さま
有難うございます。小生、UARTのポートの修正はオリジナルとは異なる手法をとりました。オリジナルはUART#2を使う場合はUART#1のバッファも確保しています。UARTを2台使用できるようにして、2台目を使用するようにしていますが、小生はメモリの制限を考慮しUARTはコンソールとしてしか使用しないので、一台のUARTのバッファとしています。ご指摘の#define INTNO_SIO IRQ_VECTOR_USART2は有効になっています。小生の考え方は間違ってはいないようなので、.tfファイルをいじって色々試しています。時間があれば、何処かにたどり着けると思っています。
追加の質問ですが、CFGのバージョン問題の話が出ていましたが、JSP用のcfgとASP用のcfgは同じものと考えてよいのでしょうか。ASP用のcfgをJSPで使用しても問題は無いか知りたいのです。Cortex-M3用のJSPを考えています。(簡単ではないとは思っています)
2010年3月29日21:56 yasuo kominami(nifty)
<ykominami@nifty.com>:
小南と申します。
とりいそぎ、1についてのみ、気がついた点を書きます。
2010/3/27 koizumi yoshiyuki <koizumiyoshiyuki@gmail.com>:
> koisanです。
>
> TOPPERS/ASP cq_starmのUARTを#1から#2に変えて実機では動作しています。target\cq_starm_gccのtarget_config.c、target_serial.c、target_serial.h、target_syssvc.hを修正しました。cfgの使い方が良く解からないので、割り込みベクタの修正はkernel_cfg.cのexc_tblとbitpat_cfgintを直接書き換えて進めて来ました。
>
> 動作したことで、問題が整理されてきました。疑問が3点あります。
>
> 1.
> この状態で、新たにディレクトリ作成からsample1を作り直せば、kernel_cfg.cはUART#2用のものが作成されると思っていますが、UART割り込みは#1(53)のままで#2(54)にはなりません。kernel_cfg.cのUART割り込み番号は、target\cq_starm_gcc\target_serial.cfgのCFG_INT(INTNO_SIO,
> { TA_ENAINT|INTATR_SIO, INTPRI_SIO
> });のINTNO_SIOで指定され、cgfにてkernel_cfg.cに反映されると思っています。INTNO_SIOは
> cq_starm_gcc\target_serial.h(58): #define INTNO_SIO IRQ_VECTOR_USART2
> cq_starm_gcc\cq_starm.h(75): #define IRQ_VECTOR_USART2 (16 + 38)
> で定義しています。小生の早とちりでしょうか。
>
asp_cq_starm_gcc-20081003.tar.gzを展開して確認してみました。
target_serial.hは、以下の順に読み込まれています。
sample1.cfg->syssvc/syslog.cfg->syssvc/serial.cfg->target_serial.cfg->target_serial.h
で、target_serial.hは以下のように定義されています。
/*
* SIOの割込みベクタ番号
*/
#if (SIO_PORTID == 1)
#define INHNO_SIO IRQ_VECTOR_USART1
#define INTNO_SIO IRQ_VECTOR_USART1
#elif (SIO_PORID == 2)
#define INHNO_SIO IRQ_VECTOR_USART2
#define INTNO_SIO IRQ_VECTOR_USART2
#endif
#define INTPRI_SIO -3 /* 割込み優先度 */
#define INTATR_SIO 0 /* 割込み属性 */
ここに示されているように、マクロSIO_PORTIDの値により、マクロINTNO_SIOの値が変わります。
そして、マクロSIO_PORTIDは、以下で定義されています。
target/cq_starm_gcc/target_config.h
メールではこれらに対して言及されていませんでした。
このあたりが、kernel_cfg.cに意図された変更が反映されない原因かもしれません。