サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
アメリカ大統領選
www.ertl.jp/~takayuki
キーワード ポインタ, 最適化 これだけは覚えよう 同じ空間を指すポインタをエイリアスと言う エイリアスはない方がいい (同じ空間を指すポインタをなくす) エイリアスって? エイリアス(alias)を辞書で引くと、「別名」と出てきます。 我々が使っているプロセッサは、値を操作するときにはレジスタを使用します(Load/Store architecture)。そのため、C言語やJavaのような高級言語を処理する言語処理系(コンパイラ+リンカ)は、変数に対してレジスタを割り付ける作業を行います。例えば、i = j + kという式がある場合、i→R0, j→R1, k→R2を割り付け、「R1←j (R1にjの内容をロード)」「R2←k (R2にkの内容をロード)」「R0←R1+R2 (R1+R2を計算しR0に結果を出す)」「i←R0 (R0の内容をiに格納)」といったコードを実行します。変数名に
注意 : このページはC言語初心者向けではなく、組込み開発初心者を対象としています。理解には、C言語に関する十分な知識 および 組込み機器開発に関する多少の知識を必要とします。 このページは、これまで避けて通ってきたC言語の嫌な部分と直面し、C言語プログラマとしての自立を促すモノです。C言語の本質が知りたい方や、ちゃんとした資料をお探しの方はお勧めしません。また、「初めてのC言語」というタイトルは、「C言語を初めてやる」という意味ではありませんので、C言語がわからない方はご遠慮ください。ターゲットはIntelでもWindowsでもLinuxでもありません。聞いたこともないようなプロセッサが相手です。 スポラディック連載なので、作者にひまが出来次第追加していきます。 第一部 - 初めてのHelloWorld この章では こんなこと やります
www.ertl.jp
SWEST21開催概要 開催日程: 2019年9月5日(木)〜6日(金) 開催場所: 下呂温泉 水明館 (岐阜県下呂市) メインテーマ: 準備中 Topics (最新情報) 2018年10月22日: SWEST21の開催概要を掲載しました 2018年10月22日: SWEST20のプログラム資料・議事録およびアルバムを掲載しました ポジションペーパーの説明 ポジションペーパーは、SWESTへ参加するみなさんがSWESTでさらに議論を深めることを目的とする、意思表明文です。具体的には、SWESTへ参加するにあたって、SWESTのテーマ、各分科会テーマに対して、皆さんがどのような立場で、どのようにお考えになっているのかをまとめて表明していただくものです。 各分科会のテーマに類する問題をお持ちであるなら、是非ポジションペーパーにしたためてください。解決のお手伝いができるかもしれません。と言うもの
目的 crt0.oの謎を解き明かし、スタートアップルーチンの基礎を作る。 #補足 : 今回作るスタートアップは完璧じゃないです CRT (って、カソード レイ チューブでないことは確かなんだけどね) 前回、新しくターゲット用に作ったgccでコンパイルしたところ、crt0.oがないと怒られて終わりました。今回はこのcrt0.oが何であるかを解明するところからスタートします。 とりあえずLinuxネイティブだったらコンパイルできたので、Linuxのネイティブgccとv850-nec-elf-gccが何をやっているかを調べ、どこがおかしいのかを調べましょう。gccは-vをつけてコンパイルすると、何をやっているのか教えてくれるので、これを比較してみましょう。 % gcc -v hello.c Reading specs from /usr/lib/gcc-lib/i386-redhat-linux
はじめに このページでは、GNUの開発ツールキットである "GNU Compiler Collection (gcc)","GNU Binary Utilities (gnu-ld, gnu-as)","GNU Debugger (gdb)"に関して色々書きます。近頃、「この手のページって無いですね」っていう方が増えてきたので、ちょっと作ってみました。GNUに関するちょっとした話とともに、各ツールの話、そしてビルド方法や使用方法などを説明できればと思ってます。 What's GNU? 「GNUはUNIXではないんです」 "GNU"という単語は、Linuxユーザや組込みプログラマなら一回は聞いたことあるでしょう。GNUとは、GNUプロジェクトそのものを指す言葉でもあり、GNUプロジェクトによって作られたプログラムを指す言葉でもあり、GNUプロジェクトが設けているライセンスを指す言葉でもありま
========================================================== 分科会2 セッション S2-4-1 タイトル :組込みソフトウェアコンポーネントを256倍使うためには 時間 :15:10〜16:50 参加人数 :21人 会場 :C会場 コーディネータ: 佐藤洋介(デンソー) 山崎進(福岡知的クラスター研究所) ========================================================== [概要] ・プロダクトラインやコンポーネントフレームワークを組込みに導入するに当 たっての、期待する点や問題点などの抽出を行い、それについて議論を行う。 [形式] ・パワーポイントによる説明の後、複数箇条の質問について意見を出しディス カッションを行う。 ---------------------------
キーワード C言語, コンパイラ, 引数, 返却値, スタック, スクラッチレジスタ これだけは覚えよう C言語プログラムとアセンブリ言語プログラムをつなげるには、呼出規約を知らないといけない。 呼出規約は、コンパイラ毎に変化する。 関数呼出 C言語やPascalなどの高級言語の多くは、関数を作ることができます。ある程度の処理をひとつの関数(手続き)として分離することで、問題を簡単にしたり、使い回ししやすくしたり、コードの見栄えを良くしたりできます。呼び出す側は処理に必要な情報を与え、呼び出された側は渡された情報のみ(※)を用いて処理を行って答えを返します。 プログラムが計算を行うためには、レジスタを使用する必要があります。しかし、呼出元も呼出先もレジスタを使用するので、そのままではレジスタを取り合ってケンカがおきます。これを調停するのが呼出規約です。 呼出規約の中には、次のような決め事が
これだけは覚えよう 変数はその長さで割り切れる番地に置くべし 原因と原理 アライメントとかワード境界とか言う話の原点は、プロセッサとメモリをどうつないでいるかという点からスタートしています。ですからまず、ソフトウェアの話ではなくハードウェアの話から入ります。 プロセッサの話をするとよく出るのが「ビット幅」の話です。あれは32ビットプロセッサだとか、これは128ビットプロセッサだとかいう表現をされ、性能指標のひとつとしてよく登場します。大体ビット幅は「レジスタ長」か「データバス幅」かのどっちかです。こっから先では「レジスタ長 = データバス幅」で話をします。 同じクロックの8ビットプロセッサと32ビットプロセッサを比較すると、大体32ビットプロセッサのほうが高速に動作します。これは、32ビットプロセッサのほうが一度に読めるデータの量が多いことに起因します。8ビットプロセッサ用の8ビットRAM
キーワード C言語, 初期化されていない変数, 静的確保, ゼロ初期化, スタートアップ これだけは覚えよう すべての初期化していない静的に確保される変数は.bssセクションに入っていて、0で初期化される。 すべての初期化していない静的に確保される変数が0で初期化されると思っていると、上司に怒られる。 .bssって何? .bssセクションはセクションのひとつです(セクションとは何かが知りたければ、infoを読みましょう)。名前は「Block Started by Symbol(シンボル名で示された番地から始まるメモリブロック)」の頭文字からきています。 このセクションは、ELF(Executable and Linkable Format)では次のように定義されています。 .bss This section holds uninitialized data that contribute
このページは、「組込み向けプログラム開発では絶対必要なスキルなんだけど、誰に聞いても「info読めば」としか答えてくれないものを、多少まじめに答えてみる」という趣旨のものです。基本的には組込み応用だけでなく、プログラマとして重要な項目なども含めていくつもりです。 注意 : いきなりこのページを読むと、調べる力が身につかなくなります。なぜ相手が「infoを読め」と言ったのかを考えてから読むようにするとよいでしょう。 アライメントとか、ワード境界とか 構造体のサイズが妙に大きいとか、変数の読み出しが妙に遅いとか、アクセスエラー例外が起こるとか セクションとか.textとか ROMから動かないとか、変数の初期値が消えるとか、プログラムローダが止まるとか 初期化してない変数とか.bssセクションとか 「初期化してない変数が利用されました」警告とか、Cランタイムとか スクラッチレジスタとか呼出規約と
キーワード セクション, オブジェクトファイルフォーマット, .text, プログラムローダ, ELF(Executable and Linkable Format) これだけは覚えよう プログラムは複数のセクションという単位に分割されている 原因と原理 私たちが日ごろ作っているプログラムは、ノイマン型コンピュータ上で動きます。ノイマン型コンピュータというのは、プログラムをメモリに蓄えているタイプのコンピュータ(Program stored computer)を指し、プロセッサとメモリを持ったものは大体ノイマン型です。当然私たちのプログラムもメモリにロードされて動いています。 プログラムが動くとき、さまざまな用途でメモリが使用されます。その用途は、機械語をおくためや、変数として値を格納しておくため、またC言語などでは関数呼び出しを行うためのスタックとして使用するため、mallocなどで動的
ご来訪ありがとうございます。でも、ここのページは全てMicrosoft Internet Explorer向けに作っています。 「MSIEが嫌いでしょうがない」とか「lynxで見れないページはおかしい」とか「W3CのHTMLに従ってないページなんて見れない」とか言うなら仕方ないですが、できればMSIEを使ってもう一度開きなおしてください。 名古屋大学 大学院 情報科学研究科 情報システム学専攻 集積システム学講座 組込みリアルタイムシステム研究室 常駐 豊橋技術科学大学 大学院 工学研究科 電子・情報工学専攻 計算機大講座 組込みリアルタイムシステム研究室 所属 わかばやし たかゆき
What's CEST? 「組込みシステム開発技術研究会(Consortium for Embedded System Technology; CEST)」は、東海地方を中心とし た産学共同の研究・開発活動を行う団体です。活動を通じて会員の組込み システム開発技術を向上させること、また会員企業の産業分野における競争力の向上を目指しています。 What's New? 2024年2月28日(水) 第282回技術交流会のご案内を更新しました。 第282回技術交流会 日時:2024年03月14日(木) 18:30 - 21:00 場所:オンライン開催(Zoom) 話題:Next Designを用いたDX推進ツールの構築プロセスの提案と実践 話題提供者:不破 慎之介氏(デンソークリエイト) 概要: ソフト開発業界でDXを推進するためには、適切な粒度で記述内容をデジタル化する必要があります。また、デジ
目的 メモリマップを自分で決めて、リンカスクリプトを(途中まで)記述する メモリマップ これまで普通にC言語を使ってきたときには、OSがありました。第1回の時にもプログラムを動かしていたのはLinuxでした。 プログラムはOSによって、様々なリソース割当を行われます。CPU時間もそのひとつですが、最も重要なのがメモリ割当です。実際にプログラムが使うメモリを予約して、その空間に適切な形でプログラムを読出し、プログラムを実行します。必要に応じてアドレス変換やメモリ保護なども行います。 しかし、この「始めてのC言語」ではOSはありません。メモリ割当は自分で行う必要があります。このメモリ割当を行うために必要なのがリンカスクリプトです。 リンカスクリプトを作る前に、ターゲットコンピュータのメモリマップを知る必要があります。メモリマップとは、どのアドレスに何が置いてあるかの表みたいなものです。今回対象
================================================================================ 8/26 13:20〜15:00 チュートリアル2 セッションS2-3-1:「モデル検査ツールSpinによる組込みソフトウェアの検証」 講師: 青木 利晃(北陸先端科学技術大学院大学) 席数 :約30席 参加者:約20名 ================================================================================ モデル検証がいろいろいわれているが、モデル検査ツールであるSpinを紹介する。 また、組込みソフトウェアにどう使われているか説明する。 ・ソフトウェアの信頼性 現在、社会システムの様々な場所にソフトウェアが組み込まれている。 -バンキングシステム、航空管
ITRON仕様準拠製品登録制度 登録製品一覧 普及・広報活動 ITRONオープンセミナー ITRON International Meeting 展示会への出展と講演の情報 資料室 参考文献 講演等の資料 (旧)ITRON部会メンバ その他の関連活動/情報 ITRON Club メイリングリスト TOPPERS/JSPカーネル (フリーのITRON仕様OS) JCGプロジェクト IIMPプロジェクト 連絡先: トロン協会 ITRON仕様検討グループ 〒108-0073 東京都港区三田1-3-39 勝田ビル5階[地図] TEL: (03) 3454-3191 FAX: (03) 3454-3224 TRON は "The Real-time Operating system Nucleus" の略称です。 ITRON は "Industrial TRON" の略称です。 μITRON は "
更新状況 [Dec 8th] infoを読め に エイリアスを追加しました [Nov 20th] infoを読め に バイトオーダを追加しました [Nov 20th] infoを読め に 呼出規約を追加しました 一部の限られたタイプの人間には「読める物」を書いていきます。 GNU Development Toolkit GNUの開発用ツールに関する説明書きです (現在工事中)。 infoを読め 「そんなことも知らないのか。infoでも読んで出直して来い。」と言われた時にどうぞ。 組込み技術者向け「初めてのC言語」 有名なHello, the World!を題材に、C言語の"基礎"について載せていきます。スポラディック連載です。 注意:プログラム言語および組込みに関して多少知識のある方でないと理解できません。ここはC言語の言語仕様自体を解説しているページではありません。 プログラムにまるわる
情報処理学会の論文誌において,下記の要領で『組込みシステム工学』をテーマに特集号を企画しております.組込みシス […]
キーワード ビッグエンディアン, リトルエンディアン これだけは覚えよう 多バイトのデータをバイト列に変換する方法をバイトオーダ(Byte-order)という バイトオーダはプロセッサによってのみ変化する 原因と原理 アライメントやワード境界の話と同様、メモリのバイトオーダの話はプロセッサとメモリの関係によって生じます。 今日のプロセッサの多くはバイトアドレッシング方式と呼ばれる方式でメモリをアクセスしに行きます。この方式は、メモリのデータ幅(箱の大きさ)に関係なく、1バイト単位でアドレスをつけていく方式です。1バイトごとにアドレスをつけていくので、メモリの容量はアドレス空間の大きさと同じです。 [余談] バイトアドレッシング方式と対になる方式がワードアドレッシング方式です。これは、メモリのデータ幅にあわせ、メモリの箱単位でアドレスをつけていく方式です。メモリのアドレスバス上に流れる値(S
このページを最初にブックマークしてみませんか?
『ERTL — Embedded Real-Time Laboratory』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く