gombeのブログ

マイコンの電子工作系PIC32/KiCad/C/C++/3D/

STM32F

マイコンで3D表示(図解)

3D表示に関してここにまとめておきます。 1、座標変換 3DのCGの世界ではカメラを回すのではなく、世界を回します。また、世界を歪めます(透視投影)。しかし線形変換では透視は与えられないので別の方法を使います。 透視はzで割ることで与えられます。しかし…

組み込みでのC++の勧め

PICならxc32++,armならarm-g++,など、さまざまなマイコンでc++を利用可能です。例えば32bitCPUならアドレスがリニアに取れることが多いため、オーバーヘッドが少なくてすみます。 そこでc++をつかったプログラミングのススメを書きます。ではなぜC++なのでし…

CubeMX コードジェネレータチュートリアルもどき

CubeMXはST社のコードジェネレータです。このジェネレータはライブラリとその設定(初期化)、クロックの設定、RTOSなどのミドルウェアを生成します。そのことについてメモメモ。

マイコンのDMAでの断続的な転送

DMA 単一のアドレス空間上にはFlashやペリフェラル(周辺機器)のレジスタ、RAMメモリがある。この空間の間は通常CPUなどがアクセスしてメモリ間転送している。 これはCPUにやらせてもいいのだがCPUはリソースを取られるし一定時間内で転送しなければならない…

STM32 FLASHをEEPROM的に使う(2)

前回の続きです。STMのフラッシュを利用する時はロックを解除し一ページを消去、ブランクチェックの後に書き込みを実行、その後に照合をし、ロックをかけて完了でしたね。 今回はリンカスクリプトの解説をちょっとだけしたいと思います。リンカスクリプトと…

STM32 FLASHをEEPROM的に使う(1)

膨大なフラッシュを持つマイコンが今多くあります。そんなマイコンのフラッシュを使わないわけないですよね。 というわけでフラッシュの使い方を解説します。が、相変わらず雑ですので。まずマイコンはアドレス空間上にRAMやFlashがマッピングされています。…

HALってこう使うものだ(自称

図は汚いです。後の図はもっと綺麗なので。重要なのはどのようにしてHALを叩くのかです。 私はこのような形でHALを触っています。これはHALを直でユーザーが触るのだけは避けています。なぜなら変更があった時などに対応できなくなるからです。が、GPIOだけ…

HALの開発環境(2)

今回はmake,arm-none-eabi-gcc(長い),debugger, gitを入れましょう。Linux系には大抵makeは入ってますが、(gitも)でもコンパイラはないでしょうねでは入れていきましょう。

HALの開発環境

まさかeclipseなんて使うことないよね。今はエディターはemacs一択(宗教戦争ならぬEditor戦争) ということで開発環境についてのメモです。開発環境はエディター一本ですよ。そんなIDEなんて使ってこれどうするんだあれどうするんだプロジェクトぶっ壊れたgit…

STM32F1HALが強かった件について

くせ強すぎ あとあと解説を書こうと思ってたらなかなかペンが動かなかったけどさすがにもう書きます。 HALは(Hardware Absolute Layer だったっけ?)のryで、抽象化してくれます。これを使うことでベンダーに依存しない画期的なプログラムが書ける (^o^)/ 実…

arm-gccを使ってみる

そーす はい。いきなり結果です。コンパイルしてみました。 今後HAL使います。使いたくなかったんだけど時代の流れもあり、こだわり続けられないというかんじ?ですかね。 メイクファイルは書かないとならないですが、がんばりましょう(苦笑)。 一応ライセ…