マイコン

PSoC Creatorの .gitignore

*.cywrk.* *.cydsn/codegentemp/ *.cydsn/CortexM0p/ *.cydsn/CortexM3/ *.cydsn/CortexM4/ *.cydsn/Export/ *.cydsn/Generated_Source/ *.cydsn/*.cyprj.* *.cydsn/*.cycdx *.cydsn/*.cyfit *.cydsn/*.rpt *.cydsn/*.svd *.cydsn/*_datasheet.pdf *.cydsn/*…

Mbed OS 5を静的ライブラリとしてビルドする

やりたいこと 背景 開発環境 Mbed OS 5用プロジェクトの作成 Mbed OS 5の静的ライブラリをビルド ユーザープログラムのプロジェクトを作成 ユーザープログラムをビルド 【2020/05/21 追記】 本記事の手順で作成したMbed OS 5の静的ライブラリを使用すると正…

__wrap__free_rが無いと言われたら

MbedのプロジェクトをGCC環境にエクスポートしてビルドすると、リンクの段階で下記のようなエラーが発生する場合があります。(どういう場合に発生するのか不明。) undefined reference to `__wrap__free_r' undefined reference to `__wrap__malloc_r' undef…

PSoC CreatorでPDLが無いと言われたら

PSoC Creatorをアップデートした場合(?)に、下記のようなエラーが出ることがあります。PDLとは「Peripheral Driver Library」で、PDL v2はFM0+やFM4に、PDL v3はPSoC6に対応しています。(PSoC4やPSoC5はそんなライブラリ要らないってこと?)PDLは C:\Progra…

SW4STM32での謎の不具合

Windows版のSW4STM32でデバッグを実行しようとすると、「OpenOCD Binary not found」というエラーが発生した。いろいろ試行錯誤したところ、デバッグの構成で「OpenOCD Command」の指定に拡張子「.exe」を付ければ解決した。「.exe」が無いとエラーが発生。 …

メモ:追加のボードマネージャのURL

Arduino IDEでサードパーティー製ボードのパッケージをインストールするためのボードマネージャのURLをメモ。 (2021/11/23 追記)M5Stack https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json ESP32 https://dl.espre…

メモ:Eclipse CDTでMakefile生成を抑制

Eclipse CDT系のマイコン開発環境であるSW4STM32でMbed OS5のプロジェクトをビルドすると、毎回Makefileの生成が行われ数分を要するということがある。Mbed OS5のソースファイル数が膨大なためである。このMakefile生成を次回から省略するには、プロジェクト…

メモ:MBED_COMPILER_BARRIERでビルドエラー

Mbed OS5 からSW4STM32にエクポートしてビルドすると、mbed_toolchain.hの下記の行で「'asm' undeclared」というエラーが発生する。 #define MBED_COMPILER_BARRIER() asm volatile("" : : : "memory") ビルドに用いるコンパイラの違いによるものである。下…

メモ:ESP32でmDNS

mDNSとは? multicast DNSの略 ローカルネットワーク内のホストをマルチキャスト転送で名前解決する DNSサーバーが不要になる 通常のDNSと同様、あらかじめIPアドレスを知らなくてもアクセスできる Windows, Mac, Linuxで統一された規格 (WindowsはWindows10…

MPLAB X IDEのコンパイラバージョン指定

MPLAB X IDEで特定のバージョンのコンパイラを指定する方法まとめ。 コンパイラのインストール 下記ページの「Language Tool Archives」にてXC8、XC16、XC32の各バージョンをダウンロードできるので、所望のバージョンをダウンロードしてインストールする。 …

マイコンでEthernet

マイコンでEthernetを使いたい場合、ハードウェアの構成に3つのパターンがある。いずれの場合もRJ45ジャックにはパルストランス内蔵のもの(MagJackなど)を使用するものとする。 マイコンがEthernetのMACを持たない場合 この場合、SPI接続等でEthernetのMAC/P…

make (e=87): パラメータが間違っています。

Mbedのプロジェクトをオンラインコンパイラからエクスポートして、WindowsでEclipse系のオフラインビルド環境にインポートしてビルドすると次のようなエラーが出る場合がある。 make (e=87): パラメータが間違っています。英語環境だと次の通り。 make (e=87…

renesas_gr-peach.cfgの修正

症状 e2studioと最新版のOpenOCDでGR-PEACHのデバッグを実行すると、renesas_gr-peach.cfgでエラーが発生する。 GR-PEACHのデバッグ環境構築 (Windows) - 滴了庵日録 最新版のOpenOCDのインストール 最新版のOpenOCDはパッケージ管理のためにNode.jsが必要と…

GR-PEACHのデバッグ環境構築 (Windows)

前提 OpenOCDのセットアップ シリアルポートドライバをインストール OpenOCDのインストール OpenOCDの設定ファイルのコピー e2studioにOpenOCDのパスを設定 プロジェクトの設定 デバッグの構成 ビルドの設定(最適化) デバッグの実行 参考ページ 前提 プラッ…

Visual Studio Codeで がじぇるね の開発 (C++)

Visual Studio CodeでGADGET RENESAS(がじぇるね)の開発をする裏技です。 GR-SAKURAとGR-CITRUSで確認ずみ。 Windowsで確認ずみ。Macでもたぶんできるはず。Linuxは未対応。 Arduinoベース(C++言語)での開発です。Rubic / mrubyではありません。 Visual Stud…

LPC111xマイコンのピン機能設定の注意点

LPC111xマイコンのピン機能は基本的にはGPIOがデフォであり、IOCONFIGレジスタのFUNC=0がGPIOとなっているが、一部そうでないピンがある。特に下記(2)の場合が要注意である。 (1) RESET, SWCLK, SWDIO RESET, SWCLK, SWDIOのピン(PIO0_0, PIO0_10, PIO1_3)は…

EclipseでMbedでnRF52なローカル開発環境

(1) やりたいこと nRF52832のソフトウェアをMbedで開発したい オンラインコンパイラは嫌(※1)なのでローカルで開発したい EclipseベースでもいいのでGUIなIDEで開発したい Windows上で開発したい Mbed Studioなにそれ? (※2) デバッガはnRF52-DKボードのJ-Lin…

LPC1114のA/Dコンバータ

LPC1114のA/Dコンバータでちょっとつまづいたのでメモ。 LPC1114のA/Dコンバータには以下の2つのモードがある。 (1) ソフトウェア制御モード A/D制御レジスタ(AD0CR)のBURST=0とするとこのモードとなる。 AD0CRのSELでチャンネルを選択し、AD0CRのSTART=001…

Visual Studio CodeでArduino

Arduino IDEはなにかと不便なのでVisual Studio Code (VSCode) を使ってArduinoの開発をするメモ。 VSCodeとArduino IDEをインストール 当然ながら、まずVSCodeをインストールしておくこと。また、VSCodeでArduinoの開発をするといっても、内部ではArduino I…

SW4STM32のデバッガ設定の注意点 (リセットモード)

System Workbench for STM32 (SW4STM32) でハマったのでメモ。ST-Linkをマイコンボードに接続してデバッグしようと思ったら、下記のようなエラーが発生した。 Error: timed out while waiting for target halted どうも SWCLK と SWDIO だけを接続して RESET…

MbedからLPCXpressoへのエクスポート

やりたいこと Mbedのオンラインコンパイラで作成したLPCマイコンのプロジェクトをエクスポートしてLPCXpressoにインポートしたい。以前はエクスポート時の選択肢にLPCXpressoがあったのだけど、今はなくなっている。代替手段を見つけるのに手間取ったのでメ…

PSoC注意点メモ

PSoC 5LP Prototyping Kitの注意点 PSoC 5LP Prototyping KitのP0_2, P0_3, P0_4, P3_2にはでかいコンデンサ(1uF)がついてるので要注意。とくにOPアンプで使うときに不都合。(不都合なときはC12, C13, C9, C7をはずす。) P1_0, P1_1もデバッガ用ピンなので使…

今さらLPCXpressoメモ (2)

割り込み待ち 割り込み待ち命令の組込み関数は、__WFI() クロック出力 LPC812 Xpressoの場合、P0_1ピンにクロック出力が設定されている。 設定箇所は、lpc_board_nxp_lpcxpresso_812(ボードライブラリのプロジェクト) の board_sysinit.c の Board_SetupMuxi…

固定小数点計算ふたたび

前回の 固定小数点の再発明 - 滴了庵日録 ではROMサイズがかえって増えるという残念な結果になったので、C++でクラス化することはあきらめてC言語で書きなおした。 fixed24.h #ifndef _FIXED24_H #define _FIXED24_H #include<stdint.h> typedef int32_t fixed24; #def</stdint.h>…

今さらLPCXpressoメモ

ひさしぶりにLPCXpresso使ったら、使い方忘れてたのでメモ。 IDEのインストール 最新版のLPCXpresso IDE (今日現在でv8.2.2_650) をダウンロードしてインストールする。 Windowsでは、通常は C:\nxp\LPCXpresso_8.2.2_650 にインストールされる。 IDEの起動 …

固定小数点の再発明

Adafruit TrinketのようなROMが数キロバイトしかないマイコンでは、float型を用いると浮動小数点のライブラリがROM容量を圧迫してしまう。そこで固定小数点クラスを作ってみた。【2019/05/24 追記】 Arduino IDEでビルドしてみたところ、AVRマイコンではfloa…

Arduinoのしょうもない落とし穴

踏んでしまったのでメモ。操作ミスまたは一時的なバックアップのつもりでうっかり下図のようなファイルコピーをおこなったとする。このとき、test.ino を開いてもArduino IDE上に test - コピー.ino は表示されない。空白や日本語を含むファイル名のソースは…

Arduino系マイコンで超いいかげんなprintf

Arduino系のマイコンでprintfをシリアルに出力するためのいいかげんなマクロ static char print_buff[256]; // ←メモリが許すなら十分大きくとる #define printf(...) sprintf(print_buff, __VA_ARGS__), Serial.print(print_buff) sprintf()とSerial.print(…

マイコンでTensorFlow!? (4)

今回はいよいよTensorFlow Liteのサンプルコードをビルドしてボードに書き込んでみます。 サンプルコードの内容 SparkFun Edgeボードの2つのマイクに入力される音声から「Yes」と「No」という単語を検出します。これには畳み込みニューラルネットワークによ…

マイコンでTensorFlow!? (3)

今回はサンプルコードのビルドとボードへの書き込みをやってみます。以下の2つを試します。 Edge Test:GPIO、UART、ADC、I2Cなどのハードウェア機能のデモ。 Makefile Project Template : 自分でプロジェクトを作るためのテンプレート。 (1) Edge Test 4つ…