マガジン

  • SOLIDで安全なリアルタイムシステムを開発する

    京都マイクロコンピュータ株式会社製のリアルタイムOS, IDEである「SOLID」の特徴をご紹介します。

  • SOLID for Raspberry Pi 4

    • 26本

    SOLID for Raspberry Pi 4 の使い方について連載しています。 SOLID for Raspberry PI 4 は、Linux の機能を使用可能で、更にマイクロ秒単位のリアルタイム処理も可能な組込みアプリケーションの開発・実行・デバッグを包括的にサポートする開発環境です。実行環境の OS イメージと開発環境は、無償配布されており、誰でも簡単に使用できます。

記事一覧

連載27-ベアメタルでSOLIDを使う

いよいよ来ました最終段階。 ベアメタルでSOLIDを使ってみます。 SOLID OSもSOLIDコアサービスも取り外します。 じゃぁ一体何をもってSOLIDなのか。。。? ラスボスがい…

YN
4か月前
1

連載26-OSレスでSOLIDコアサービスを使うー3

前々回、前回と、統合開発環境であるSOLIDからTOPPERSカーネルを取り外しています。 今回は、前回できなかった機能のうち、ぜひご紹介したい機能「ローダー機能」について…

YN
5か月前
3

連載25-OSレスでSOLIDコアサービスを使うー2

前回、統合開発環境であるSOLIDからTOPPERSカーネルを取り外してみました。 「OS(SOLIDコアサービス含む)、デバッガ、コンパイラ」の三位一体 から、 「SOLIDコアサービス…

YN
5か月前
1

連載24-OSレスでSOLIDコアサービスを使う

今回は今までとは少し変わったアプローチをご紹介します。 1.三位一体最近の記事はおさらいばかりですが、懲りずに、統合開発環境SOLIDの一番の特徴をおさらいすると、 …

YN
5か月前
1

連載23-SOLID 便利機能連載の振り返り

OS&統合開発環境SOLIDの便利機能をご紹介するこの連載も、23回目となりました。 SOLIDのブレない特徴は、「OS、コンパイラ、デバッガ三位一体の開発環境」です。 だか…

YN
5か月前
1

連載22-QEMUでハードウェアなし開発ー2

前回は、QEMUを使って、ハードウェアがない状態で開発する方法についてご紹介しましたが、書ききれなかった機能がまだまだあります。 今回はその中でも、以下についてご紹…

YN
6か月前
1

連載21-QEMUでハードウェアなし開発

今回は、QEMUを使って、ハードウェアがない状態で開発する方法についてご紹介します。 1.QEMUって一言で言うとハードウェアのシミュレータです。 組み込みのソフトウェ…

YN
6か月前
4

連載20-ローダー機能ー4

前回までで、ロードモジュールをロードし実行するまでを行いました。 今回は、いくつかの開発スタイルにおいてどのようにデバッグをするのか、についてご紹介できればと思…

YN
6か月前
1

連載19-ローダー機能ー3

ここしばらく、SOLID-OSの持つ「ローダー機能」についてご紹介しています。 今回は、SOLID独自形式のローダー機能を動かしてみていきます。 1.SOLID独自形式のローダー…

YN
6か月前

連載18-ローダー機能ー2

前回から、SOLID-OSの持つ「ローダー機能」についてご紹介しています。 今回は、DLL(Dynamic Link Library)方式のローダー機能を動かしてみていきます。 1.DLL方式のロ…

YN
7か月前
1

連載17-ローダー機能ー1

ここ何回か、SOLID-IDEの持つデバッグ機能に着目してご紹介してきました。 今回はSOLID-OSの持つ機能を一つご紹介します。 1.ローダー機能とは一言で「ロードする」とい…

YN
7か月前
4

連載16-関数トレース

今回は、関数トレースについてご紹介します。 「ここに至るまでの経緯」を知るための機能です。 1.トレースとはデバッガの機能の一つに、トレースの情報を取得する機能…

YN
7か月前
1

連載15-静的解析

SOLIDの便利機能をご紹介するシリーズも、15回目になりました。 まだまだご紹介したい機能があります。 今回は、静的解析についてご紹介します。 ソースコードを解析し…

YN
7か月前

連載14-コードカバレッジ機能

前回、前々回と、例外が発生した場合の対応方法をご紹介しました。 今回は、コードカバレッジ機能についてご紹介します。 1.コードカバレッジ機能とは画面を見るのが一…

YN
8か月前

連載13-例外が発生した場合ー2

前回は、例外が発生した場合のデバッガの振る舞いについて記載しましたが、すべて書ききれたわけではありません。 今回は、もう一つの機能についてご紹介します。 1.ク…

YN
8か月前

連載12-例外が発生した場合

今回は、例外が発生した場合どうなるのか?どうすべきなのか?について、考えていきます。 1.例外って今まで書いてきた中で、よい例があります。 連載3を振り返ってみ…

YN
8か月前
1
連載27-ベアメタルでSOLIDを使う

連載27-ベアメタルでSOLIDを使う

いよいよ来ました最終段階。
ベアメタルでSOLIDを使ってみます。
SOLID OSもSOLIDコアサービスも取り外します。

じゃぁ一体何をもってSOLIDなのか。。。?

ラスボスがいます。
SOLID-IDEです。

1. SOLID-IDE今まで、イマイチ後ろに隠れがちだったSOLID-IDE。

カバレジ結果を表示しても、「コンパイラとSOLIDコアサービスのルーチンのおかげ」と言われ、

もっとみる
連載26-OSレスでSOLIDコアサービスを使うー3

連載26-OSレスでSOLIDコアサービスを使うー3

前々回、前回と、統合開発環境であるSOLIDからTOPPERSカーネルを取り外しています。

今回は、前回できなかった機能のうち、ぜひご紹介したい機能「ローダー機能」について書いていきます。

1. ローダー機能ローダー機能も、TOPPERSカーネルがなくとも使えます。
「SOLID コアサービス」が持っている機能なので、OSに依存していません。

本連載第18回でご紹介した内容を試してみましょう

もっとみる
連載25-OSレスでSOLIDコアサービスを使うー2

連載25-OSレスでSOLIDコアサービスを使うー2

前回、統合開発環境であるSOLIDからTOPPERSカーネルを取り外してみました。

「OS(SOLIDコアサービス含む)、デバッガ、コンパイラ」の三位一体
から、
「SOLIDコアサービス、デバッガ、コンパイラ」の三位一体
になったわけです。

当然OSの機能は使えないことになりますが、SOLIDコアサービスが提供している機能の中でOSとは独立しているものは、使えます。

今までご紹介してきた機

もっとみる
連載24-OSレスでSOLIDコアサービスを使う

連載24-OSレスでSOLIDコアサービスを使う

今回は今までとは少し変わったアプローチをご紹介します。

1.三位一体最近の記事はおさらいばかりですが、懲りずに、統合開発環境SOLIDの一番の特徴をおさらいすると、
「OS、デバッガ、コンパイラの三位一体」
です。

上記のOSの括りの中には、CPU抽象化レイヤ「SOLID Core Service」という、SOLID独自のレイヤがあります。

過去記事の以下でご紹介しています。
https:/

もっとみる
連載23-SOLID 便利機能連載の振り返り

連載23-SOLID 便利機能連載の振り返り

OS&統合開発環境SOLIDの便利機能をご紹介するこの連載も、23回目となりました。

SOLIDのブレない特徴は、「OS、コンパイラ、デバッガ三位一体の開発環境」です。
だからというワケでもないのですが、この連載では、3つの特徴をごちゃまぜにご紹介してきました。

ちょっとここで整理します。
大きく分けて、
・OSとしての特徴
・開発環境としての特徴
・コンパイラと連携しての特徴
があります。

もっとみる
連載22-QEMUでハードウェアなし開発ー2

連載22-QEMUでハードウェアなし開発ー2

前回は、QEMUを使って、ハードウェアがない状態で開発する方法についてご紹介しましたが、書ききれなかった機能がまだまだあります。

今回はその中でも、以下についてご紹介します。

・32ビットCPUのサポート
・SOLID for QEMUのロード機能を試す

1.64ビットand 32ビットSOLID for QEMUがエミュレートするCPUはARM Cortex-A53です。
ARMv8なので

もっとみる
連載21-QEMUでハードウェアなし開発

連載21-QEMUでハードウェアなし開発

今回は、QEMUを使って、ハードウェアがない状態で開発する方法についてご紹介します。

1.QEMUって一言で言うとハードウェアのシミュレータです。

組み込みのソフトウェア開発を開始するためには、まずハードウェアが手元にないと、ビルドまでしかできませんよね。

しかしQEMUを使うと、ハードウェアを仮想的に実現してくれます。

そうはいっても、動くのってCPUと割り込みとメモリくらいでしょ?

もっとみる
連載20-ローダー機能ー4

連載20-ローダー機能ー4

前回までで、ロードモジュールをロードし実行するまでを行いました。

今回は、いくつかの開発スタイルにおいてどのようにデバッグをするのか、についてご紹介できればと思います。

1.開発スタイルとデバッグ対象今回、開発のスタイルについて、以下3パターンを考えてみます。

・メインアプリのワークスペースを使って、メインアプリ&ロードモジュールのデバッグをする
デバッグする人はメインアプリ担当者であるケー

もっとみる
連載19-ローダー機能ー3

連載19-ローダー機能ー3

ここしばらく、SOLID-OSの持つ「ローダー機能」についてご紹介しています。

今回は、SOLID独自形式のローダー機能を動かしてみていきます。

1.SOLID独自形式のローダー機能おさらいDLL形式の場合と同様、OSや基幹部となるアプリ等とは別に、アプリ入れ替え可能な領域が存在します。

複数アプリをロードすることも可能で、両アプリとも相互呼び出しが可能です。

DLL形式の場合、入れ替え対

もっとみる
連載18-ローダー機能ー2

連載18-ローダー機能ー2

前回から、SOLID-OSの持つ「ローダー機能」についてご紹介しています。

今回は、DLL(Dynamic Link Library)方式のローダー機能を動かしてみていきます。

1.DLL方式のローダー機能おさらいOSや基幹部となるアプリ等とは別に、アプリ入れ替え可能な領域が存在します。

下の図で、紫色の部分です。

ローダー機能により、例えばアプリAをロードするとします。
以降はアプリAの

もっとみる
連載17-ローダー機能ー1

連載17-ローダー機能ー1

ここ何回か、SOLID-IDEの持つデバッグ機能に着目してご紹介してきました。
今回はSOLID-OSの持つ機能を一つご紹介します。

1.ローダー機能とは一言で「ロードする」といっても、いろんな意味がありますよね。
組み込みエンジニアがパッと思いつくのは、ある程度のサイズがあるバイナリデータをメモリに書きこむこと、ではないでしょうか。(筆者だけ?)

ベアメタルの場合は、そうですよね。
そして多

もっとみる
連載16-関数トレース

連載16-関数トレース

今回は、関数トレースについてご紹介します。
「ここに至るまでの経緯」を知るための機能です。

1.トレースとはデバッガの機能の一つに、トレースの情報を取得する機能があります。
一般的に思いつくのは、ICEにトレースプローブを付ける方法です。
マイコンチップのトレース用端子とトレースアダプタを接続し、そこから分岐情報やバス情報等拾ってトレースを行います。

この場合、トレースの情報を抽出し出力するの

もっとみる
連載15-静的解析

連載15-静的解析

SOLIDの便利機能をご紹介するシリーズも、15回目になりました。
まだまだご紹介したい機能があります。

今回は、静的解析についてご紹介します。
ソースコードを解析し、間違っている要素があるところを指摘してくれる機能です。

1.静的解析とはClangコンパイラにはとても沢山機能がありますが、使うのが面倒です。
(のっけから言ってしまうと、身も蓋もありませんが。)

沢山ある機能のうち、使いたい

もっとみる
連載14-コードカバレッジ機能

連載14-コードカバレッジ機能

前回、前々回と、例外が発生した場合の対応方法をご紹介しました。

今回は、コードカバレッジ機能についてご紹介します。

1.コードカバレッジ機能とは画面を見るのが一番わかりやすいと思うので、以下URLから抜粋させていただきます。

https://solid.kmckk.com/SOLID/doc/latest/user_guide/code_coverage.html

こんな機能です。
プログ

もっとみる
連載13-例外が発生した場合ー2

連載13-例外が発生した場合ー2

前回は、例外が発生した場合のデバッガの振る舞いについて記載しましたが、すべて書ききれたわけではありません。

今回は、もう一つの機能についてご紹介します。

1.クラッシュダンプ今でこそ滅多に見ませんが、昔のWindowsはよくクラッシュしましたねー。。。(あ、もう知らない人も多い?)
いきなり、画面が真っ青になり、よくわからないログがバババーッと表示されましたよね。
エラーの番号とか出たりして、

もっとみる
連載12-例外が発生した場合

連載12-例外が発生した場合

今回は、例外が発生した場合どうなるのか?どうすべきなのか?について、考えていきます。

1.例外って今まで書いてきた中で、よい例があります。

連載3を振り返ってみましょう。
スタックオーバーフローについての記事でした。

https://note.com/yn_2022/n/ne1ab585ff233?magazine_key=m5b34a9ddbc30#441cc49c-3e42-4fab-a

もっとみる