(toppers-users 3320) Re: Cortex-M3版 TOPPERS/ASPのistackが変だと思います

Takaki Nobuhide takaki @ ftl.co.jp
2010年 12月 15日 (水) 13:51:17 JST


こいさん様

Cortex-M3担当をさせていただいています
高木@未来技術研究所です。

以下、回答させていただきます。

> 1 スタックサイズの記述

私の解釈が間違っていなかったら、ARMのABIの規定により
スタックは8バイトでアライメントされる必要があります。
(ABIには、公開インタフェースの制約としててスタックは8バイトアライメント
が必要とある)
そのため、STK_Tをlong long とし、スタックを8バイトアライメント
しています。

DEFAULT_ISTKSZの記述は、私のASPソースの解釈間違いがありまして
間違いでした。
正しくは、ご指摘の通り8Uを割る必要がなく
#define DEFUALT_ISTKSZ (0x1000)
です。

> 2 上記を修正でスタックは確保できましたが、スタックポインタがが合いません
>
>  そこで、以下の修正が必要ではないかと思っています。arch\arm_m_gcc
> \prc_config.c
> /*
> * 非タスクコンテキスト用のスタック初期値
> */
> #define TOPPERS_ISTKPT(istk, istksz) ((STK_T *)((istk) +
> (istksz/sizeof(STK_T))))

ご指摘の通りです。
上の1により、ここも修正する必要があります。
修正します。

> 3 別件で以前のバージョンでは動作していましたが、カーネル1.6でコンパ
> イルエラーになる 不具合(?)があります。

1.6はこれから対応する予定でいますが
TSKCTXBについてはvetion.txtに名称変更と履歴にありますので、
単に名称変更だけであると思います。

以上です。