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

Shinya Honda honda @ ertl.jp
2012年 4月 2日 (月) 17:27:23 JST


こいさん

本田です.

確認ありがとうございます.make に関しては,

asp/target/stbee_armcc/target_user.txt

にありますように,./arch/armcc/ 以下のファイルを使って下さい.

 $cp ./arch/armcc/Makefile.sample ./sample
 $cp ./arch/armcc/makedep         ./utils

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

(2012/04/02 17:22), koizumi yoshiyuki wrote:
>   こいさんです。
> 
> makeでBuildが通るように成りました。
> 
> arch\arm_m_armcc\common\Makefile.coreで以下の修正を行ないました。
> #
> #  コンパイルオプション
> #
> #GNU互換,スモールデータセクション未使用, thumb
> COPTS := $(COPTS) $(CORE_COMMON_OPTS) --gnu --bss_threshold=0 --thumb
> #DATA領域の初期値を圧縮しない
> -LDFLAGS := $(LDFLAGS) $(CORE_COMMON_OPTS) --datacompressor=off --no_remove
> +LDFLAGS := $(LDFLAGS) $(CORE_COMMON_OPTS) --datacompressor=off --no_remove
> --libpath=c:/Keil/ARM/RV31/LIB
> 
> #
> -INCLUDES := $(INCLUDES) -I$(COREDIR) -I$(COREDIR_GCC)
> +INCLUDES := $(INCLUDES) -I$(COREDIR) -I$(COREDIR_GCC) -I
> c:/Keil/ARM/RV31/INC
> 
> #
> LIBS := $(LIBS)
> 何れも、環境変数の設定でも可能な気がします。ご存知ならお教え願えませんでしょうか。当方はWindowsでmakeしています。
> 
> 尚、前のメールでcfg1_out.cに_start関数を追加しましたが、makeではstart.oがlinkされていました。μVision4でもstart.sxで解決したほうがよいかも知れません。
> 
> 以上
> 
> 
> 
> 2012年4月2日13:53 koizumi yoshiyuki<koizumiyoshiyuki @ gmail.com>:
> 
>> こいさんです
>>
>>
>> 早速、動かして見ました。μvision4版はbuild、シミュレータでの実行ができました。メールに書かれていた手順でBuildを行い、シミュレータで動作しました。
>>
>> Build実行にワーニングが出ています。原因は解かりましたが、対応方については解からないことがありますが、連絡しておきます。
>>
>> 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は負の数なのでキャストした。
>> ■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){ }
>>
>> 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)に修正
>>
>>   以上でμVision4でワーニングがなくなります。ただし、cfg --pass
>> 1を実行するとcfg1_out.cが更新されてしまいます。(cfgの修正は小生には手が届かないのであきらめています)
>>
>> ★★
>> 質問があります。armccを使ったmakeでbuildする環境はサポートされないのでしょうか。
>>
>>> perl ../configure -T stbee_armcc
>>> make depend
>>
>>
>>   と実行して見ましたが、buildできませんでした。原因の一つに■3の問題が関連しているようです。又、インクルードファイルが無い問題とインクルードを適当に誤魔化して(armから探した)Buildすると、linkでエラーが出ます。環境変数の設定に誤りが有るのかも知れません。
>>
>> 以上
>>
>> 2012年3月14日21:44 Shinya Honda<honda @ ertl.jp>:
>>
>>> 皆様
>>>
>>> 本田です.
>>>
>>> 2011年度公募型事業として開発しました,ASPカーネルのARM社製コンパイラ
>>> 対応版をリリースしました.
>>>
>>> http://www.toppers.jp/asp-e-download.html
>>>
>>> リリースしたパッケージは以下の通りです.
>>>
>>> ASP STBEE(ARMCC)簡易パッケージ SJIS版
>>> ASP STBEE(ARMCC)簡易パッケージ
>>> ASP STBEE(GCC)簡易パッケージ
>>> ASP LM3SXXXX(ARMCC)簡易パッケージ
>>> ASP LM3SXXXX(GCC)簡易パッケージ
>>> ASP AT91SKYEYE(ARMCC)簡易パッケージ
>>> ASP AT91SKYEYE(GCC)簡易パッケージ
>>>
>>> ASP STBEE(ARMCC)簡易パッケージ SJIS版 は,以下の手順でWindows上で容易に
>>> ビルドとシミュレーションが可能なので試して下さい.
>>>
>>> ----------
>>> 1. uVisionの評価版を以下のサイトからダウンロードしてインストール.
>>>    https://www.sophia-systems.co.jp/ice/arm/keil/index.asp
>>>
>>> 2. ASP STBEE(ARMCC)簡易パッケージ SJIS版 をダウンロードして展開.
>>>
>>> 3. uVisionのプロジェクトをダブルクリックして開く.
>>>    asp\target\stbee_armcc\uvision\asp_proj.uvmpw
>>>
>>> 4.uVisionのメニューから"Project"->"Batch Build.."を選択してBatch Buildの
>>>   ダイアログを開き,Buildボタンを押してASPをビルド.
>>>
>>> 5.uVisionのメニューから"Debug"->"Start/Stop Debug Session" を選択してシ
>>>   ミュレータを起動する.
>>>
>>> 6. EVALUATION MODE を知らせるダイアログが表示されるのでOKを押す.
>>>
>>> 7.uVisionのメニューから"View"->"Serial Windows"->"UART #1" を選択して,
>>>   コンソール出力が表示されるようにする.
>>>
>>> 8.uVisionのメニューから"Debug"->"Run" を選択してシミュレータの実行を開始
>>>   する.
>>> ----------
>>>
>>> 実機で実行する場合は,以下のボードを購入して下さい.
>>>
>>> STM32マイコンボード『STBee』(72MHz, 512K+64KB)
>>> http://strawberry-linux.com/catalog/items?code=32103
>>>
>>> 以上.
>>>
>>
>>