組み込み設計– tag –
-
割り込み
割り込み処理の基本から設計まで完全ガイド|組み込み開発のためのまとめ記事
割り込み処理をまとめて理解したい 割り込みって、結局どう設計するのが正解なんですか? ポイントは、“ISRを書くだけ”じゃなく、設計全体で考えることなんだ 組み込み開発では、割り込み処理は避けて通れません。 しかし実際には、 とりあえずサンプル通... -
メモリ領域
ROM・RAM・FLASHの違いとは?初心者でもわかるように図解で解説【組み込み】
ROM・FLASH・RAMの違い(概要) 一言でいうと「消えるメモリ(RAM)と消えないメモリ(ROM/FLASH)」の違いです。 ROM・FLASH・RAMの違いは次の通りです。 メモリ書き込み電源OFF用途RAM可能消える作業メモリROM基本不可消えないプログラム保存FLASH可能消... -
メモリ領域
C言語の配列はなぜポインタのように使えるのか?メモリ構造から理解する
はじめに C言語を学んでいると、こんなコードをよく見ます。 Cint arr[3] = {1,2,3}; int *p = arr;int arr[3] = {1,2,3}; int *p = arr; さらに: Carr[1]arr[1] と Cp[1]p[1] が同じように使えます。 ... -
メモリ領域
C言語のスタックフレームとは?関数呼び出し時のメモリ構造を図でわかりやすく解説
はじめに 関数を呼び出すと、スタック領域にはどのようなデータが積まれるのでしょうか。 C言語では関数呼び出しのたびに、スタック上に**スタックフレーム(Stack Frame)**と呼ばれる領域が作られます。 このスタックフレームには次のような情報が保存さ... -
メモリ領域
メモリレイアウトまとめ|メモリレイアウトからポインタまでtext・data・bss・heap・stackを体系的に理解する
メモリ構造をまとめて理解したい 先輩、メモリ関連の勉強をしたいのですがどこから勉強すればよいか分かりません! そうだね。このページではメモリ構造の全体像と、メモリ構造解説シリーズの紹介をするよ。 C言語を学んでいると、 text領域とは何か data... -
メモリ領域
static変数とは?C言語のメモリ配置とグローバル変数との違いをわかりやすく解説
static変数とは? C言語の static変数 とは、静的記憶域に配置され、プログラム終了まで存在し続ける変数です。 通常のローカル変数は関数を抜けると消えてしまいますが、static変数は 関数が終わっても値が保持され続けます。 #include <stdio.h> v... -
メモリ領域
スタック領域とは?C言語のStackの仕組みとヒープとの違いを解説
C言語のプログラムでは、メモリは複数の領域に分かれて管理されています。 例えば次のような領域があります。 text領域:プログラムのコード data領域:初期値ありのグローバル変数 bss領域:初期値なしのグローバル変数 heap領域:mallocで使用する動的メ... -
メモリ領域
スタートアップコード(Startup Code)とは?main()前の.data/.bss初期化処理を組み込み実務目線で解説
はじめに main()って電源入れたらすぐ動くんですよね? いや、それが違うんだよ。その前に“超重要な処理”があるんだ マイコンの電源を入れても、いきなり C言語の main() が実行されるわけではありません。 ARMマイコンでは、まず Reset_Handler と呼ばれ... -
メモリ領域
C言語 データ領域(.data)とBSS領域(.bss)の違いとは?初期値・ROM/RAM・起動処理まで実務目線で解説
データ領域(.data)とBSS領域(.bss)の概要 まず結論です。 ✔ .data → 初期値あり(ROMに保存 → 起動時にRAMへコピー)✔ .bss → 初期値なし(起動時にゼロクリア) この「初期値の有無」が、すべての違いの本質です。 そしてそれが「ROM使用量」に直結します... -
割り込み
RTOSとは何が違う?割り込み中心設計との違いを組み込み実務目線で解説
はじめに RTOSを使えば、割り込みとか状態遷移ってもう考えなくていいんですよね? 実は逆で、“考えることの種類”が増えるんだ これまでの記事では、 割り込みの基本 ISR設計 状態遷移 優先度設計 について整理してきました。 では次に出てくる疑問があり...