サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大谷翔平
mcommit.hatenadiary.com
以前書いた記事、 mcommit.hatenadiary.com ではBeagleBoneBlack用のイメージを作るのを試してみましたが今回はyocto を使って共有ライブラリ(Shared Object)と共有ライブラリを参照する実行モジュールのビルド&イメージ化を試してみました。 組込Linuxの開発では(組込じゃなくても)共有ライブラリ(Shared Object)を作って各実行モジュールでそれを呼び出すようなアプリケーションを開発することはよくあります。 ホスト環境で開発する場合は割と簡単ですが、できたプロジェクト一式をyoctoを使ってクロスコンパイルし、イメージ化する方法はあまり情報がなく、試行錯誤するのに割と時間がとられたので記事として挙げておきます。 目次 目次 とりあえず試したいという人はここを読んでください 環境構築 今回試すプロジェクトの構成 calcディレクトリ
追記 こちらの記事は2019年に書いた記事でしたが、最近のyoctoでビルドするとこの記事の手順通りにしてもSDカードからLinuxを起動できなくなっていました。(2023年7月時点) kirkstoneでビルドしたイメージを動かす記事を改めて書きましたのでBeagleBoneBlackで動かす部分については以下のリンクの記事の方を参考にしてください。 mcommit.hatenadiary.com yoctoの基本的な知識についてはこちらの記事に書いてあることからあまり変わっていませんのでこちらの記事を読んで頂ければと思います。 (追記ここまで) ちょっと前にyoctoについて色々と調べる機会があったので理解している範囲で書いておきたいと思います。 yoctoに関する基本的な知識とBeagleboneBlack用のイメージをビルドし動かすまでの手順を書いたので少し長くなりました。 目次
Unix系OSでのIPCの手段として提供されている機能の中にメッセージキューという機能があります。 この機能はプロセス間のデータの受け渡しに便利ですが、そもそもプロセス間通信とかたまにしか使わないので備忘のためまとめておきたいと思います。 目次 目次 メッセージキューとは APIの簡単な説明 初期化 送受信 キューの削除 メリットとデメリット メリット キューであること 優先度が指定できる 送信と受信の呼び出し順を意識しなくてよい 送信側が待たされない 送受信ともタイムアウトが指定できる socketより気軽に使える デメリット C言語以外での実装があまりされていない 双方向性がない システムコールがデフォルトで有効化されていないことがある サンプルコード Linuxでの実装 まとめ 追記 メッセージキューとは プロセス間通信の手法の1つです。 メッセージキューに関する注意点として、Sys
最近OSの仕組みを勉強しているのですが、教科書的な勉強だけだとなんだか退屈してしまうのでARMの基板でOS自作してみることにしました。 この手の趣味プロジェクトはなかなか長続きしないことが多いのですが、モチベーション維持のためにも活動記録をあげておきたいと思います。 目次 目次 ターゲット なぜこの基板にしたのか? 目標 MMUを使うこと Ethnernetコントローラを動かす HDMIでGUI出力をすること 環境構築 用意するもの(ハードウェア) 開発環境の構築 クロス開発用のツールチェインのインストール AllWinner用のイメージ作成ツールのビルド 参考にするレポジトリ つづき ターゲット ターゲットにするのはpcDuinoという基板です。 pcDuino Linux Dev Board akizukidenshi.com 私の手元にはこの基板があるのですが、V2という新しいバージ
この記事は、低レイヤのコードをRubyで書きたいという人のための拡張モジュール作成入門記事です。 Rubyが好きでC言語がある程度分かる方には読んで頂けると参考になるかと思います。※ただし、私が真面目に拡張モジュールを書いていたのはもう5年以上前なので知識が古くなっている可能性があります。 この記事を書いた動機ですが、RXマイコンのリンカをRubyで書いていて、Rubyで書いているとC言語の構造体へのアクセスが辛くなってきたので、FFIや拡張モジュールを使うべきだったと感じました。 久しぶりに拡張モジュールの書き方など復習してみたので記事にしてみました。 FFIも拡張モジュールもちょこちょこと触っているのですが、私のように 「やる気はないけど、進捗は欲しい」 という方には、RubyとC言語を上手く組み合わせて開発をするというのは悪くない実装方針ではないでしょうか*1 この記事を含めて、でき
ポインタと__farのついたポインタのサイズの違いを意識する必要がありましたので書いておきたいと思います。 結論 __far付きのポインタと(__farのつかない)ポインタでは型のサイズが異なる場合があり、その場合アクセスできる領域も当然違ってきます。(ここでの __farはコンパイラでのキーワードです) そもそも far とは何か? 16bit・32bit・64bitなどCPUのビット幅の違いとして、使用できるメモリの容量をよく耳にすることがあると思います。 パソコンだと、 「32bit版のWindowsだとメモリは4GBまでだけど、64bit版だと4GB以上メモリを搭載できる」 という話は皆さんご存知かと思います。 32bitで表現できる値は0~4294967295になりますのでアドレス空間に換算すると4GBの領域を表現できることになります。 64bitですと、0~1844674407
2018年早々、LLVMのビルドで消耗しておりました。 なんとなくlibToolingを使ってみようとしたらソースのビルドが必要そうな感じだったので始めたのですが、LLVMには複数のプロジェクトがあり、各プロジェクトの役割とかいまいちピンと来ておらず、ビルドにあたっていろいろドキュメント読んだりする必要がありました。 ドキュメントを熟読せずに始めるといろいろと躓くようなので、LLVMのビルドに関する情報をまとめておきたいと思います。 といってもまだまとめ切れていない点が多いので恐らく後から次々と追記・訂正することになりそうな気がします。 目次 目次 必読ページ達 LLVM System GettingStarted 読めよ、絶対読めよ。 開発環境のC++のツールチェインについて ツール・プロジェクトについて compiler-rt lld LLDB 結論 注意事項 LLVMのビルドは結構デ
最近、オープンソースなどで配布されているソフトのビルドシステムがCMakeになっているのをよく見かけるようになりました。 CMakeはこれまでも何回か使ったことがありましたが、クロスコンパイルをしたいときの使い方を忘れてしまっていて、思い出すのに時間がかかったので備忘録として書いておきたいと思います。 目次 目次 CMakeでHello World ビルドするコード CMakeLists.txt を書く ビルド クロスコンパイルを試す ツールチェインファイルの書き方 クロス開発環境のプレフィックスについて 感想 CMakeでHello World クロスコンパイルの前にC言語のHello WorldプログラムをCMakeを使って(セルフコンパイル)ビルドしてみます。 ビルドするコード #include <stdio.h> int main(int argc, char **argv) {
Linux上でC言語でシリアル通信をするプログラムを書く際に、いろいろ調べたので書いておきたいと思います。 目次 目次 シリアル通信プログラムの流れ シリアルポートのデバイスファイル termios構造体 制御コードに気をつけろ! raspberry piで動かしてみる。 Raspberry pi で動かしてみたコード(C言語) Raspberrypi のデバイスファイルについて 感想 シリアル通信プログラムの流れ Linuxでシリアル通信プログラムを書く際の大まかな流れですが、 シリアルポートに対応するデバイスファイルをオープンする termios構造体を使って通信設定する termios構造体の設定値をポートに反映させる read/write関数を使って通信する というような流れになります。 シリアルポートのデバイスファイル 一般的にUnix/Linux系OSではシリアルポートは/de
C#でJSONフォーマットのWebAPIを呼び出したいと思ったのですが、ちょっとてこずったので備忘録として挙げておきます。 調べてみるとHTTP通信にはHttpClientが便利という記事が多かったので私もHttpClient(.Net 4.5以上ですが)を使ってみました。 また、今回呼び出したいWebAPIはリクエストのbody部にjsonフォーマットのパラメータを指定するAPIだったのでC#のJSONのシリアライズ(文字列)の方法を調べてみました。 結果、JavaScriptSerializerというクラスを使うと文字列にシリアライズできそうだったのでJSONのシリアライズにはJavaScriptSerializerを使っております。 ※JavaScriptSerializerって名前にはちょっとひっかかりますが、でもJSONってJavascript Object Notationの略
先ほど(ていうかもう昨日ですが) mcommit.hatenadiary.com という記事を上げましたが、 BOTが動かないまま寝るのが癪に障るのでLINE BOT APIについていろいろ調べて、意識高い系のBOTを作って山田孝之さんとトライのお兄さんと会話させてみました。 まぁ、APIを発行するサーバーの関係で、厳密に言うとBOTというよりAPIでの送信ができただけですが。 あれから色々調べてみると、herokuならすんなり動くというのでherokuでの実装に挑戦してみました。 といっても私はherokuは触ったことがなかったのでherokuの使い方から調べないといけませんでしたが、マニュアルが分かりやすく、すぐにリリースできるように作られているので、ツールベルトという開発用のツールを入れてから1時間ほどでAPIのコールバックの受付口を作り、自分のLINEアカウントからBOTのアカウン
久々にブログ記事、更新します。 タイトルの通り、最近Atomを使うようになってきました。 エディタをインストールしたらやることと言えば、 キーバインドの設定 カラーシンタックスの設定 ですが、Atomのキーバインドの設定について触れられている記事があまりなかったので調べて分かったことなど書いておきたいと思います。 そもそもエディタは昔からサクラエディタを使っていて、MacやUnix系環境ではEmacsを使っていました。 WindowsでもNTEmacsを使ってEmacsで統一しようとした時期がありましたが、MacとWindowsではメタキー(Alt,Command)の割り当てが違うのが嫌になってWindows環境ではサクラエディタをずっと使っていました。 サクラに別に不満は無いのですがクロスプラットフォームでない点だけが引っかかっていたのでSublimeTextを経てAtomに行きついた次
このページを最初にブックマークしてみませんか?
『simotin13's message』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く