oobu_eiichi
2014年11月4日 17時14分
お世話になっております。
日立産業制御ソリューションズ 大部です。
hermit-at-3.1.0 で以下のコマンドを実行。
make armadillo800eva_mmcsd_defconfig
make menuconfig
を実行すると、Hermit-At Configuration が起動。
Target Configurations ---->
を選択し、
Support Devices ----->
を選択し、
MMC/SD support
のチェックを外し、saveする。
上記の状態でmakeすると以下のエラーがでてしまいます。
何故でしょうか?
LDS src/target/armadillo8x0/loader.lds LD src/target/armadillo8x0/loader-armadillo800eva-mmcsd-v3.1.0.elf src/target/armadillo8x0/built-in.o: In function `armadillo8x0_init': proc.c:(.text+0x648): undefined reference to `emmcboot1_memdev_init' src/target/armadillo8x0/built-in.o: In function `.LANCHOR0': proc.c:(.data+0x4b4): undefined reference to `rma1_mmcsd' make[1]: *** [src/target/armadillo8x0/loader-armadillo800eva-mmcsd-v3.1.0.elf] エラー 1 make: *** [build-target] エラー 2 atmark@atde4:~/800EVA/hermit-at-3.1.0$
コメント
at_hanada
花田です。
> hermit-at-3.1.0 で以下のコマンドを実行。
> make armadillo800eva_mmcsd_defconfig
> make menuconfig
> を実行すると、Hermit-At Configuration が起動。
>
> Target Configurations ---->
> を選択し、
> Support Devices ----->
> を選択し、
> MMC/SD support
> のチェックを外し、saveする。
>
> 上記の状態でmakeすると以下のエラーがでてしまいます。
> 何故でしょうか?
こちら、遅ればせながら確認したんですが…
前提として、Armadillo-800 EVAのハードウェア構造上、
ブートローダー(Hermit At)はeMMCとSD(いずれも同一のMMC/SDドライバで動作)に置かれることしか
想定しておらず、その意味でMMC/SD supportを外したブートローダーを作ることもない…という
前提でコードが書かれていたようです。
ただ調べたところ、実は(NOR Flashからの起動もサポートしている)Armadillo-810や840でも
同様の設定変更でビルドエラーになる場合があり、その意味で言い訳できない状況でした…
MMC/SD以外にも、FlashとEthernetにおいて同種の問題が確認されましたので、
修正パッチ hermit_at-v3_unsupport-device-bug-fix.patch を添付します。
(標準のConfig設定における動作は、一切変化しません。
設定を変更した場合のビルドエラー対処のみのパッチです)
同種の問題でお困りの方は、本パッチを持ってご確認ください。
(当然、確認の上で公式ソースに取り込まれるべき種類の修正と思います)
ファイル | ファイルの説明 |
---|---|
hermit_at-v3_unsupport-device-bug-fix.patch |
at_yashi
2014年11月5日 17時40分
src/target/armadillo8x0/board.c::armadillo8x0_init()
で、していたり、いろいろmmcsd 依存のままのようです。
添付した patch (
no-mmcsd.patch
) をあてると、compile はできるようになりました。