記事の作成背景
Petalinuxのリファレンスガイド通りに自動起動スクリプトを作ったのになぜかデバックが上手くいかない。
そんな事があったので忘れないうちに書いときます。
※かなり初歩的な内容です
開発環境
- OS
Ubuntu16.04(Windows10 Virtualbox) - 動作環境
Zynq QEMU - コンパイル環境
Cygwin64bit
今回の失敗
起動スクリプトで標準出力が使えないことを忘れていた
printf()をつかって、起動スクリプトが起動したかを確認してました…
作業内容
下記記事を基に起動スクリプトを作成
https://qiita.com/take-iwiw/items/50065df6cdd1ba8bcbd6
(この記事はPetalinuxのリファレンスガイド内の”起動時のアプ リ ケーシ ョ ン自動実行”内のアプリケーションを、スクリプトに変更したもの)
Petalinuxリファレンスガイド
※P55参照
手順はそのままでOK。ちゃんと起動スクリプトは実装され、プログラムは起動します。
ですが…自分は起動したかどうかを、printfで文字が出たか否かで確認してしまった事でドハマりしてしまいました。
アプリケーションを/etc/rcS.dにS99+(ファイル名)のスクリプト、/etc/init.d/の中に(ファイル名)のスクリプトが入った状態になっていました。
rcS内のファイルは起動スクリプトが走った最初に実行されるので、printf()での情報出力先が決まる前に処理を走らせて、情報を出す場所がなかったからコンソールに文字が出なかったのかなぁ…
ここはまだ継続調査が必要だと思う
※printf()が起動スクリプト実行時に使えない理由は下記サイト参照
https://www.uquest.co.jp/embedded/learning/lecture03.html
なんでこんな簡単な内容書いたの?
この記事書いたのは、petalinuxのアプリケーション自動起動について書いている記事で、printfでデバックしないよう警告してるページがなかったってのもあり、ネット記事使って書きました。
一番は自分の備忘録のために書いたので文章が乱雑になっちゃいましたが…今後気をつけよう