[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

(toppers-users 3128) Re: cq_starmのCFGについて



小南さま
 
 有難うございます。小生、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に意図された変更が反映されない原因かもしれません。