2018-10-01から1ヶ月間の記事一覧

02

はじめに Githubで公開されている,GitHub - bztsrc/raspi3-tutorial: Bare metal Raspberry Pi 3 tutorialsのコードを読んでいく.今回は02_multicorecを理解することを目的とする.登場ファイル:start.S, main.c, link.ld, Makefile キーワード:アセンブ…

01

はじめに Githubで公開されている,GitHub - bztsrc/raspi3-tutorial: Bare metal Raspberry Pi 3 tutorialsのコードを読んでいく.今回は01_bareminimumの無限ループを理解することを目的とする.登場ファイル:start.S, link.ld, Makefile キーワード:ア…

Raspberry Pi 3 Model Bのブート周り

はじめに ラズパイ3で動くOSを自作するために必要な情報を収集中.基本的に必要な情報はラズパイ公式のドキュメントに書いているみたいだけど,散らばってるし,英語だしよくわからんってことでまとめてみた. BCM2837 まずはハードウェアについて.BCM2837 …

UARTって何?

はじめに UART - Wikipediaによると,UART (Universal Asynchronous Receiver/Transmitter, ユーアート) は、調歩同期方式によるシリアル信号をパラレル信号に変換したり、その逆方向の変換を行うための集積回路とある.なるほどわからん.まず赤文字で示し…

ヘッダファイルの勉強

includeとinclude" "の違い? include<>を使用すると,プリプロセッサは「システム標準のディレクトリ」内でヘッダーファイルを検索する。 include""を使用すると,プリプロセッサは「カレントディレクトリ⇒コンパイラーの-Iオプションなどで命名されたディ…

ELF形式を理解する.2

Step3: セクションヘッダを読んでみる セクションヘッダテーブル用の構造体を定義する。ELFヘッダから、セクションヘッダは8個あることがわかったので、8つ用意。 /* section_header_read.c */ #include <stdio.h> short swap_short(unsigned short value); int swap_</stdio.h>…

ELF形式を理解する.1

はじめに リンカが何をやってるのかが、いまいちわからないのでリンカので出力であるELFフォーマットのファイルを調べてみることにした。1stステップで作られるkzload.elfを先頭から解析してみる。kzload.elfはH8上(ビッグエンディアン)で動かすが、解析は…

c言語でバイナリファイルから構造体を読み込む

はじめに ファイルから構造体を読み込むプログラムを作成する。 目標 以下のようにstruct_read.cに構造体を定義。 /* struct_read.c */ #include <stdio.h> struct data{ char first_name[10]; int age; int height; }; 以下のtanakaさんのデータtanaka.datを読み込み</stdio.h>…

c言語で16進ダンプするプログラム

はじめに c言語でファイル入出力を扱う練習として、16進ダンプするプログラムを作成する。 目標 まず、正解が必要なのでバイナリエディタ「Ghex」をインストール。以下のhello.cを作成。 /* hello.c */ #include<stdio.h> int main(void){ printf("Hello World!\n"); </stdio.h>…