プログラムdeタマゴ

nodamushiの著作物は、文章、画像、プログラムにかかわらず全てUnlicenseです

C/C++

組み込みでラムダは使って良いけど、std::functionは駄目っぽい

例えば、組み込みでウォッチドックタイマー(WDT)を使う場面を想定しましょう。 void main() { クロック設定とか; WDT->Prescaler = プリスケーラの設定; WDT->Clear = クリア; WDT->Control = イネーブル; for(;;){ WDT->Clear = クリア; 何か処理; } } 無…

static_assertで比較した値を表示したい

「C++のconstexprの値がおかしいんだけど、static_assertで間違った値表示できないの?」と聞かれました。 できねぇんだな、これが C++11からstatic_assertはあるというのに、何故static_assert_eqやstatic_assert_ltとかがないのだろう。謎で仕方がないです…

C++の総合参照ってどう作るのが良いの?

スマポと相互参照 GCを持っていない以上、根本的にC++のスマポと循環参照は相性が悪いけど、私が問題にしたいのはソコではないです。 例えば、前回公開したSVDライブラリだと以下の様に、木構造の情報を構成します。 デバイスはペリフェラルを複数保持する …

C++のCMSIS5 SVD読み込みライブラリ作った

Tock Registerはよく分からないっすけど、SVDはXML Schemaがあるんで、自動的にバインドさせれば、案外簡単に解析できますよ。— nodamushi (@nodamushi) 2019年5月18日 ブーメランという言葉をご存じだろうか。そう、今は無き民主党のあれである。 C++ heade…

組み込み屋さんのC++学習は普通にやっちゃ駄目って話

周囲の組み込み屋さんを闇のC++プログラマに堕落させたいと目論む訳ですが、組み込み屋さんが普通のC++の教科書を片手にお勉強しちゃ駄目だよねって話。特に取り纏めもないメモ書きなんだけど。 私はもう流石にC++の入門書は手元にないのですが、例えば、私…

組み込み屋こそC++を使うべきなのです

やーやーやー。なんとワタクシ、遂に脱8bitしました!ワーワー、ドンドンパチパチ! さて、組み込みでもRustがアツかったり色々しますね。ただまぁ、Rustってサポートや車載対応等が無いので、政治的ごにょごにょでちょっと使いにくいですよね。 だから、今…

今更ながら、文字列を型にしたい

やーやーやー なんで私、最近こんな黒魔術に手を出してるんだろうね。最近、相当変態的な方向性でC++を悪用 利用しようと企ててるから、こんな羽目になってますよ。 と言うのもですね、こう、色々と面倒くさい諸問題を回避しようとしてたら、黒い方法を思い…

constexprでfloatのバイナリ値を取得したい

constexprで計算したfloatの値を、バイナリをそのままにuint32_tに変換して配列の一部に保存したいという場面に出くわしました。 templateの構造体で定義すれば良いようにも思えますが、floatが入る位置や数は未定で、やりにくいのです。 というわけで、floa…

C++でタスクトレイに格納するアプリケーションを作る

コンソールアプリを作ってるんだけど、ちょっとした処理をタスクトレイに格納したいときに便利なC++ライブラリの紹介

Razer Tartarus V2をRazer synapse3無しで動かす

昨日不満をぶちまけたRazer Tartarus V2だが、悪いのはソフトであって、ハードではない。 ソフトを憎み、ハードを憎まず。 ハードは物がなければどうにもならないが、ソフトなら何とかならないこともないはずだ。 Razer Tartarus V2 メカメンブレン 左手用キ…

組み込み屋初心者さんのためのコーディング技術(C言語)

私が最近生存している業界は、アナログ最後の砦と言われているほどIT化の遅い世界ですが、ここ数年でジワリジワリとソフトの力が増してきている、という業界です。 あ、なお、お前のブログ読んでるとまるで働いているみたいだな!とか言われましたが、私はク…