mcommit's message

ソフトウェア開発の仕事をしているsimotinといいます。記事の内容でご質問やご意見がありましたらお気軽にコメントしてください\^o^/

Cコンパイラ作成入門をarmで試してみる

久しぶりに記事を書きます。このところ数学とか電気回路の勉強ばかりで、仕事以外でコードを書いていないので気分転換にコードを書きたい欲が強くなっていたのですが、@rui314さんがCコンパイラ作成入門という面白そうな本を書かれているそうなので自分もC言…

Concolic Testってなんだ?

自分が常日頃考えている課題として「組込ソフトウェアのユニットテストを自動化できないか」という課題があるのですが、ここ数日テストの自動化に関する論文やオープンソースの情報を漁ったりして少しですがインプットがたまったので整理の為にアウトプット…

低レイヤプログラミングのためのRubyの拡張モジュール開発入門

この記事は、低レイヤのコードをRubyで書きたいという人のための拡張モジュール作成入門記事です。Rubyが好きでC言語がある程度分かる方には読んで頂けると参考になるかと思います。※ただし、私が真面目に拡張モジュールを書いていたのはもう5年以上前なので…

C言語でEthernetFrameをpcap形式でダンプしてみる。

ネットワークの勉強のためだいぶ前に買っていた「ルーター自作でわかるパケットの流れ」を読んでいます。ルーター自作でわかるパケットの流れ作者: 小俣 光之出版社/メーカー: 技術評論社発売日: 2011/07/09メディア: 単行本(ソフトカバー)購入: 4人 クリ…

マグネットペイントを使って木製ボードでタスク管理ができるようにしてみた

メモの付箋を貼ったりして使おうとだいぶ前に壁掛けの木製のボードを買っていたのですが、付箋紙が直ぐにはがれてしまい全然活用できていませんでした。最近嫁さんと話していると「マグネットペイント」なるものがあって、それを塗ると磁石がくっつくように…

ユダヤ式Why思考法を読んだ

ここ最近、ユダヤ人というものに興味があり時々ユダヤ人・ユダヤ教に関する本を読んでいるのですが、ユダヤ人に関する本の読書録を書けていなかったので書いておきたいと思います。 目次 目次 ユダヤ人のイメージ ユダヤ人に興味を持ったきっかけ 読んでみた…

数学素人が線形代数を学ぶときに読んでみてよかった書籍

今年から帝京大学の通信教育課程に入学して勉強しているのですが、線形代数の講義*1を受けるにあたって関連する本を何冊か読んでみました。せっかくなので、勉強していて躓いたときに助けになった本の紹介記事を書いておきたいと思います。*2 目次 目次 動機…

ARMの命令セットの条件指定について (2)

昨日の続き。mcommit.hatenadiary.comARMの命令では最上位4ビットで条件指定ができることがわかりましたがAL(無条件実行)以外の使い方がよく分かりませんでした。命令の実行条件を指定するというのはイメージ的には r0 = 1 if flag == true r0 += 2 のように…

ARMの命令セットの条件指定について

ARMの命令セット(v7)について調べていたので備忘録のためメモを残しておきます。■ARMv7のマニュアルhttps://www.macs.hw.ac.uk/~hwloidl/Courses/F28HS/Docu/DDI0406C_C_arm_architecture_reference_manual.pdfとりあえず命令セットのところを読んでみる。 …

スタックの状態を可視化するWebツールを書いてみた。

Webページ上でStackの状態を可視化するコードを書いてみました。Simple Stack ViewerStackを可視化するツール自体に目新しい感じはしないのですが、Web上でこういうツールってありそうでなかったので作ってみました。 かなりざっくりしたものですが、よかっ…

構文解析ハンズオン 関西出張版に参加させて頂きました

lang-impl.connpass.com参加させて頂きました。 目次 目次 良かった点 苦労した点 構文解析について思ったこと Rubyで式の構文解析をしてみた 書いてみて気づいたこと 再帰か状態遷移か 今後やってみたいこと パーサジェネレータを書く 関数型言語でパーサを…

Goでバイナリファイルを読み込んでHexダンプしてみた

Go

最近触り始めたGo言語で、勉強としてバイナリファイルを読み込んでHexダンプしてみました。 バイナリファイルといってもfile.Readを使った読み込みなのでバイナリかどうかはあまり関係ないかもしれない。 package main import ( "fmt" "os" ) func main() { …

レジスタの値を取得するi386のアセンブラ関数を書いてみた

前回書いたPINE64+の続きとして、とりあえずBROMの処理が終わった状態でCPUがどうなっているか知りたいのですが、難航しています。mcommit.hatenadiary.comBROMのコードのダンプを見た結果、コプロセッサの設定とかをしていることは分かりましたがどうも追い…

PINE64のBROMのコードをダンプして逆アセンブルしてみた。

Pine64の続き。 記事はさっきあげましたが、昨日(2/26)Lチカを試したのですが、書きかけになっていたので公開していませんでした。 スタックポインタの設定の件とかモヤモヤしたので今日はBROMのコードをダンプしてみました。 目次 目次 有力な手がかり ダン…

PINE64をベアメタルで遊んでみる。

随分前にPine64+ 2GBというボードを買っていたのですが積み基板になっていました。 ちょっとARMで遊びたくなったのでベアメタルからのLチカしてみました。 ソース とりあえずGithubで管理することにします。 github.com ツールチェインについて クロスコンパ…

小学1年生の娘にC言語を教えてみて気付いた、プログラミング教育を通して子供に伝えるべきたった1つの大切なこと

意識高そうなタイトルをつけてみましたが、単純に自分の子供にプログラミングを教えてみました。実際に教えてみると、子供にプログラミングを教えるという体験を通して逆に教えられたことがあったので書いておきたいと思います。 目次 目次 動機 教育方針 具…

gdbを使って386アセンブラの復習をする

結構前に買っていたセキュリティコンテストチャレンジブックという本を最近になって読んで、脆弱性のあるコードを動かしたりして遊んでいました。セキュリティコンテストチャレンジブック -CTFで学ぼう! 情報を守るための戦い方-作者: 碓井利宣,竹迫良範,廣…

TranscendのJDM820を買ってMacBookProのSSDを交換した

普段使っているMacBookPro(Late 2013)でS.M.A.R.Tエラーが出ていたため、タイトルの通り MacBookProで使えるSSDであるJDM820を買ってSSDを交換してみました。 SSDの交換から復旧して使えるようになるまで比較的簡単でしたのでまとめておきたいと思います。 …

LLVMのビルドについてまとめてみる

2018年早々、LLVMのビルドで消耗しておりました。 なんとなくlibToolingを使ってみようとしたらソースのビルドが必要そうな感じだったので始めたのですが、LLVMには複数のプロジェクトがあり、各プロジェクトの役割とかいまいちピンと来ておらず、ビルドにあ…

LLVMをビルドするときのリンクエラー対応

llvmをビルドしようとしてリンクエラーでこけました。 VMWare上のLinux Mint上でビルドしているのですが、ググってみるとどうもシステムのメモリ容量が小さいから起きているようでした。 ※だいぶ前にLLVMをビルドしようとしたときにもはまったきがするので備…

C言語でbrainfuckを実装してみた

なんだかすごく今更ですが、気分的になんとなく実装してみました。 仕様把握 そもそもbrainfuckの仕様がよく把握できていないのでwikipedia等いくつかのサイトを参考にさせて頂きました。Brainfuck - Wikipedia Brainf*ckHello Worldなどいくつかサンプルコ…

Lispの電卓機能を実装してみる

冬休みということで少し時間があるのでいろいろ勉強しているのですが、なんとなくLisp処理系を書いてみたくなったのでRubyで実装してみたいと思います。Lisp処理系の実装というとshemeの仕様を理解して実装するのが一般的らしいのですが、冬休みで時間も限ら…

2017年にやりたかったことの振り返り

2017年にやったこと振り返り今年(2017年)の初めにいくつかやりたい事を上げましたが、達成度の振り返りや来年に向けての反省等書いておきたいと思います。 2017年にやりたかった事 こちらの記事に書いていたのは、http://mcommit.hatenadiary.com/entry/2017…

Ceyo Switch PRO コントローラーの接続手順

[ 12/28日 追記] この記事で紹介したCeyo のコントローラですが、マインクラフトで試しているとどうもZLボタン(左上の下側)のボタンが認識されていないようです。 やはり廉価品ということで壊れやすかったりするようですので購入される方は注意された方がよ…

GAOHOUのTTL-USBシリアル変換ケーブルを買ってみた

amazonを見ていると格安のUSB-TTL変換ケーブルが売っていたので買ってみました。Raspberry Pi ラズベリーパイ用の USB?TTLシリアルコンソールのUSB変換COMケーブルモジュールのケーブル出版社/メーカー: GAOHOUメディア: エレクトロニクスこの商品を含むブロ…

Linuxのカーネルモジュールを書いてみた

今年の1月に書いた、2017年にやりたいことmcommit.hatenadiary.comにLinuxのデバイスドライバを書いてみるというのを挙げておりましたが、この12月に至っても達成できていなかったのでとりあえずLinux mint上でカーネルモジュールを書いてみました。 書いた…

「戦略参謀」を読んだ

ジュンク堂大阪本店のビジネス書のコーナーの目立つところで売られていたので目にとって読んでみたらなんか面白そうだったので買ってみました。戦略参謀 経営プロフェッショナルの教科書 (日経ビジネス人文庫)作者: 稲田将人出版社/メーカー: 日本経済新聞出…

amazonのブックデポジトリー(book depository)で本を買ってみた

Valgrindについていろいろ調べていたら書籍が出ているということで買ってみたのですが、ブックデポジトリーがAmazonに出している本を注文する形で購入しました。 届くまでに時間が少しかかったので書いておきたいと思います。 目次 目次 Valgrind 注文してか…

Nucleo64 STM32F446 を買った

ここ最近体調を崩していたので記事を更新できていませんでした。 体調がよくないとあまり勉強とかもする気分にならなくて積み本と積み基板、積みツールだけがどんどん溜まっていく。とりあえず、タイトルの通りNucleo STM32F446を買ったので少しメモを残して…

Elixir入門 ~12日目 eclipseでerlangのデバッグ環境を作る~

昨日はerlangについて調べてみた結果を書いたけど、今日はソースをぼちぼちとみてみた。mcommit.hatenadiary.comソース少し読んでみたが、ちまたで言われるerlangの並列性の本質が知りたくなったので本格的に調べてみることにした。 そもそも、Elixirを勉強…