CQ-LM3S3748 (7) CMSIS (1)2012年10月31日 22時04分46秒

Configuration Wizard
先日コンパイルできなかった core_cm3.c は version V1.10 でかなり古い物だった。新しい物は無いかと探してみると CooCox に CMSIS core for Cortex M3 V1.30 、TI に CMSIS core for Cortex M3 V2.11 があった。 V1.30 には core_cm3.c があるが V2.11 には無い。無くてもよい物なのだろうか?
この際だから一番新しい物を組み合わせることにする。
core_cm3.h	Version  V3.02 (ARM)
core_cmFunc.h	Version  V3.02 (ARM)
core_cmInstr.h	Version  V3.02 (ARM)
LM3S3748.h	Version  V8636 (TI-CMSIS-Devices-8636.exe)
system_LM3S.c	Version  V3.00 (TI-CMSIS-Devices-8636.exe)
system_LM3S.h	Version  V3.00 (TI-CMSIS-Devices-8636.exe)
ところで、ここにある LM3S3748.h は C:\Keil\ARM\INC\Luminary\lm3s3748.h とは別物なので注意が必要だ。V1.10 や V1.30 の lm3s_cmsis.h に相当するものだろう。
今回必要なファイルは上記のファイルと startup_gcc.c 、blinky.ld 、blinky.c 。これは以前使った物をそのまま使う。(ベースは CMSIS_LM3S-32.zip の中のもの)

コンパイル、書き込み。
動かない。

怪しいところは見当たらないが system_LM3S.c の PLL を外すと動く。これはクロックの待ち時間が不足していた時の動きに似ている。__NOP() を10個追加して PLL を有効にしてみる。

動かない。

待ち時間だけではなさそうだ。次に SYSDIV を4から16にしてみた。
動いている。 SYSDIV を16から小さくしていくと6までは動く。システムクロックは 400 / 2 / 6 = 33.333MHz となる。
データシートでは 50MHz となっているがそのためには SYSDIV = 4 としなければならない。どうすれば 50MHz で動くんだ?
なかなか簡単には動いてくれない。今日のところは 33.33MHz で勘弁しておいてやろう。

環境:CQ-LM3S3748
    + CMSIS_LM3S-32.zip
    + TI-CMSIS-Devices-8636.exe
    + Keil MDK-ARM V4.53
    + GCC Sourcery CodeBench Lite 2012.03-56
    + KPIT Cummins GNU-Archive Editor v1.1
    + KPIT Cummins GNU-Map Viewer v1.0

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※投稿には管理者が設定した質問に答える必要があります。

名前:
メールアドレス:
URL:
次の質問に答えてください:
このブログのタイトルは?(syslab と記入してください)

コメント:

トラックバック

このエントリのトラックバックURL: http://syslab.asablo.jp/blog/2012/10/31/6621448/tb