mato_developer
2019年11月25日 9時54分
お世話になっております、上園です。
Armadillo-640のDTB作成におけるLinux カーネルをビルドについて
質問があります。
Armadillo-640のCON11にUART4、UART5、CAN1、CAN2の各インタフェース
を割り付けて通信を行います。
(Linuxカーネルは”linux-v14-at15”です)
Armadillo-640 マルチプレクス表(v1.1.0)より、以下のピンを割り当てました。
・UART4(8,11ピン)
・UART5(40,43ピン)
・CAN1(22,23ピン)
・CAN2(24,25ピン)
DTBファイル、および各DTISファイルの作成と修正を行いビルドを行いましたが、
CAN1のDTISファイルをincludeした状態でビルドエラーが発生しました。
なお、行末の設定値については、CAN1はCAN2と同じ値にしています。
dtsファイル、各インターフェースのDTISファイルとCAN1有効時の
ビルド結果を添付いたします。
お手数ですが、ご教授のほどよろしくお願いいたします。
ファイル | ファイルの説明 |
---|---|
armadillo-640.dts | |
armadillo-640-can1.dtsi | |
armadillo-640-can2.dtsi | |
armadillo-640-uart4.dtsi | |
armadillo-640-uart5.dtsi | |
can1_err.txt |
コメント
mato_developer
佐藤様
お世話になっております、上園です。
> armadillo-640-can1.dtsi 内
>
> MX6UL_PAD_LCD_DATA08__CAN1_TX 0x0b0b0 > MX6UL_PAD_LCD_DATA09__CAN1_RX 0x0b0b0 >
> としている個所を
>
> MX6UL_PAD_LCD_DATA08__FLEXCAN1_TX 0x0b0b0 > MX6UL_PAD_LCD_DATA09__FLEXCAN1_RX 0x0b0b0 >
> と修正して再度ビルドしてみてください。
修正と再ビルドを実行してみたところ、ビルドエラーが起こらずに
Linux カーネルとDTBが作成されました。
ご指摘いただきまして、ありがとうございました。
出来ればマルチプレクス表の更新をお願いしたく存じます。
at_makoto.sato
mato_developer
佐藤様
お世話になっております、上園です。
定義名の紹介いただきありがとうございます。
11.2.2. Linux カーネルイメージの書き換えと11.2.3. DTB の書き換えに従い、
カーネルと作成したDTBを/dev/mmcblk0p2にあるファイルと書き換え、
シャットダウンの後で起動させたところ、起動自体は問題なくできました。
ただ、起動時のログをみると、追加したデバイス(CAN1/CAn2/UART4/UART5)の
起動ステータスがすべて-22を返していました。
(添付した起動ログの122行目~144行目)
このため、/devの直下に追加したデバイスが認識できてない状態です。
imx6ul-pinfunc.hのパラメータはi.MX6のリファレンスマニュアルを参照していますが、
内容の理解を行っている所です。
前回修正したditsファイルを含め、必要なファイルをアップロードしますので、
お手数ですが、ご教示のほど重ねてお願いいたします。
ファイル | ファイルの説明 |
---|---|
armadillo-640-can1.dtsi | 前回のご指摘で修正したFLEXCAN1のdtis |
imx6ul-pinfunc_h.txt | imx6ul-pinfunc.hです(ヘッダファイルがアップロードできなかったため) |
起動ログ.txt | カーネルとDTBを書き換えたArmadillo-640の起動ログです |
at_makoto.sato
mato_developer
佐藤様
お世話になっております、上園です。
上記の箇所を削除してみましたが、「Starting kernel ...」で止まってしまいました。
(添付ファイルに起動時のログを置きます)
修正前の「a640.dtb」に差し替えると起動できるので、
別の問題でないかと思います。
過去ログに同様なことが無かったか確認してみます。
ファイル | ファイルの説明 |
---|---|
起動ログ_err.txt |
at_mizo
at_mizo
mato_developer
溝渕様
お世話になっております、上園です。
ご教示いただきましてありがとうございます。
UART4/5とFLEXCAN0/1のデバイスの認識することができました。
実行した内容は以下の通り。
・#include "armadillo-640-lcd70ext-l00.dtsi"の削除
・以下の文の削除
pinctrl-names = "default";
pinctrl-0 = <
#ifdef ARMADILLO640_LCD70EXT_L00
&pinctrl_lcd70ext_l00hog
#endif
#ifdef ARMADILLO640_AT_DTWEB
&pinctrl_expansion_interfacehog
#endif
>;
起動と設定を確認する限り、エラーが表示されなくなったこと
CANの設定と起動が実行でき、ifconfigで認識できたので
当方としては、Armadillo-640での準備が完了できた判断しています。
佐藤様、溝渕様にはお忙しいなかご教示いただきましてありがとうございました。
また、当方の不勉強も重なりご迷惑をおかけして申し訳ございませんでした。
ファイル | ファイルの説明 |
---|---|
起動ログ_正常.txt | 起動とデバイス確認、CANの設定と起動画面 |
at_makoto.sato
2019年11月25日 11時02分
佐藤です。
armadillo-640-can1.dtsi 内
としている個所を
と修正して再度ビルドしてみてください。