(toppers-users 3955) Re: ASPカーネル ARM/ARM-M依存部 ARMCC対応版リリース

Shinya Honda honda @ ertl.jp
2012年 4月 5日 (木) 00:07:25 JST


こいさん

本田です.

確認ありがとうございます.

(2012/04/02 13:53), koizumi yoshiyuki wrote:
> 1 cfg1_outのワーcfg1_outニング
> 
> 実行結果
> Rebuild Project 'cfg1_out' - Target 'cfg1_out'
> User command #1: ../../../cfg/cfg/cfg --pass 1 --kernel asp -I. -I../../../
> -I../../../include -I../../../arch -I../..  -I../../../target/stbee_armcc
> -I../../../arch/arm_m_armcc/stm32f -I../../../arch/arm_m_gcc/stm32f
> -I../../../arch/arm_m_armcc/common -I../../../arch/arm_m_gcc/common
> -I../../../target/stbee_gcc --api-table ../../../kernel/kernel_api.csv
> --cfg1-def-table ../../../kernel/kernel_def.csv  --cfg1-def-table
> ../../../arch/arm_m_gcc/common/core_def.csv ../../../sample/sample1.cfg
> custom translating sample1.cfg...
> Custom:
> compiling cfg1_out.c...
> cfg1_out.c: Warning:  #68-D: integer conversion resulted in a change of sign
> linking...
> cfg1_out.axf: Warning: L6305W: Image does not have an entry point. (Not
> specified or not set due to multiple choices.)
> Program Size: Code=20 RO-data=1620 RW-data=4 ZI-data=4
> User command #1: fromelf --m32combined cfg1_out.axf --output=cfg1_out.srec
> User command #2: ../../../cfg/cfg/cfg --pass 2 --kernel asp -I. -I../../../
> -I../../../include -I../../../arch -I../..  -I../../../target/stbee_armcc
> -I../../../arch/arm_m_armcc/stm32f -I../../../arch/arm_m_gcc/stm32f
> -I../../../arch/arm_m_armcc/common -I../../../arch/arm_m_gcc/common
> -I../../../target/stbee_gcc -T
> ../../../target/stbee_armcc/target.tf--api-table
> ../../../kernel/kernel_api.csv --cfg1-def-table
> ../../../kernel/kernel_def.csv --cfg1-def-table
> ../../../arch/arm_m_gcc/common/core_def.csv ../../../sample/sample1.cfg
> "cfg1_out.axf" - 0 Error(s), 2 Warning(s).
> 
> ■1
> cfg1_out.cは自動的に作られるのでOption for Targetのuserでcfg --pass
> 1の実行をやめる。これによりcfg1_out.cのパッチができるので原因追求が可能になると判断。
> 
> ■2
> cfg1_out.c: Warning: #68-D:は304行の修正で回避できます
> -const unsigned_t TOPPERS_cfg_TIPM_LOCK = TIPM_LOCK ;
> +const unsigned_t TOPPERS_cfg_TIPM_LOCK = (unsigned_t)TIPM_LOCK ;
> TIPM_LOCKは負の数なのでキャストした。
この問題は次のバージョンのcfgで修正される予定です.

> ■3
> linking...
> cfg1_out.axf: Warning: L6305W: Image does not have an entry point. (Not
> specified or not set due to multiple choices.)
> entryポイントが無いのが原因なので、cfg1_out.cの最後に以下を追加した。
> +void _start(void){ }
こちらは,cfg1_out のsrcに./arch/arm_m_armcc/common/start.sx を登録し
て,コンパイル対象に入れてもらえると解決します.

start.sx 登録後は,start.sx のOption -> Properties でFile Type をC
Source file にしてください.

次回のリリースで修正します.

> Option for Targetのlinker、Miscに--entry=_start を追加します。

こちらも,次回のリリースで修正します.

> 2 linkernelのワーニング
> Build Project 'libkernel' - Target 'libkernel'
> User command #1: ../../../cfg/cfg/cfg --pass 3 --kernel asp -I. -I../../../
> -I../../../include -I../../../arch -I../..  -I../../../target/stbee_armcc
> -I../../../arch/arm_m_armcc/stm32f -I../../../arch/arm_m_gcc/stm32f
> -I../../../arch/arm_m_gcc/stm32f/cmsis -I../../../arch/arm_m_armcc/common
> -I../../../arch/arm_m_gcc/common -I../../../target/stbee_gcc --rom-image
> cfg1_out.srec --symbol-table cfg1_out.syms -T
> ../../../arch/arm_m_gcc/stm32f/chip_offset.tf --api-table
> ../../../kernel/kernel_api.csv --cfg1-def-table
> ../../../kernel/kernel_def.csv  --cfg1-def-table
> ../../../arch/arm_m_gcc/common/core_def.csv ../../../sample/sample1.cfg
> check complete
> compiling core_support.sx...
> core_support.sx: Warning: A1581W: Added 2 bytes of padding at address 0x36
> core_support.sx: Warning: A1581W: Added 2 bytes of padding at address 0x266
> creating Library...
> "libkernel.lib" - 0 Error(s), 2 Warning(s).
> 
>   core_support.SのAALIGN(2)の3箇所をAALIGN(4)に修正
ARMCCのalignディレクティブは,ARM命令の場合は,2^nでアライメントするのに
対して,Thumb2命令の場合は1*nでアライメントするのが原因でした.次のリ
リースでは,ご指摘の通りに修正します.

以上,よろしくお願いします.