電子工作ESP32-S3のRISC-VでのULPをArduinoで実行する 概要 ESP32-S3にはRISC-V命令セットのコプロセッサーのULPが搭載されています。ESP-IDF5以降で正式に利用可能になるのですが、一足先にArduinoでの動作実験をしてみました。 先行事例 ESP32-S3のULP-RISC...2022.09.30電子工作
電子工作ESP32のULPアセンブリ言語入門 その8 ulptool 概要 前回までで、Cマクロを使ったULPの解説が終わりました。今回はCマクロではなく、Arduino IDEから直接ULPアセンブラを使うことができるulptoolの紹介をしたいと思います。 ulptoolとは? ulptoolとはArdu...2020.03.13電子工作
電子工作ESP32のULPアセンブリ言語入門 その7 マシン語の構造と逆アセンブラ 概要 前回まででCマクロで定義されている命令をすべて説明しました。今回はマシン語の構造と、逆アセンブラの説明をしたいと思います。 命令の概要 ESP32のULPは、1命令が4バイト固定のRISCアーキテクチャです。一般的なパソコンに使われて...2020.03.10電子工作
電子工作ESP32のULPアセンブリ言語入門 その6 ADC、入力、復帰 概要 前回はビット演算を行いましたが、今回は残った命令をすべて紹介したいと思います。 今回は命令より、仕組み解説が大変なのでスケッチを紹介してから、命令の解説を行います。 ADC(アナログ入力) #include "esp32/ulp.h"...2020.03.04電子工作
電子工作ESP32のULPアセンブリ言語入門 その5 ビット演算 概要 前回はジャンプを中心に説明をしました。今回はビット演算系を解説します。 ビット演算とは? 一般的なビット演算について、かんたんに解説します。 アンド - AND 数値1と数値2の各桁のビットを比べ、両方1である場合のみ1になります。 ...2020.02.28電子工作
電子工作ESP32のULPアセンブリ言語入門 その4 ジャンプ 概要 前回は初歩的な命令までやりましたので、今回はLチカを行いたいと思います。 ULPでのGPIOアクセス ULPからGPIOのアクセスする場合にはArduinoの標準とは違い、RTCを経由して通信をする必要があります。 RTCはおそらくは...2020.02.25電子工作
電子工作ESP32のULPアセンブリ言語入門 その3 演算と基本命令 概要 前回は環境構築まで行いました。今回は命令の説明と、プログラムを実際に動かしてみたいと思います。 ULPプログラミングの方式 ULPのプログラムには2つの方式があります。今回はCマクロ方式で行いますが、アセンブリ方式も説明したいと思いま...2020.02.20電子工作
電子工作ESP32のULPアセンブリ言語入門 その2 環境構築と最小スケッチ 概要 前回はn進数と単位で終わってしまいました。今回はULPの概要についてまとめてみました。 ULPアセンブリの特徴 ULPはESP32のメインプロセッサではなく、省電力でちょっとしたことを動かすコプロセッサーです。最近の携帯電話なども歩数...2020.02.17電子工作
電子工作ESP32のULPアセンブリ言語入門 その1 概要とn進数、単位 概要 ESP32のコプロセッサー用ULPアセンブリ言語の入門向けの情報をまとめました。 ULPとは? ESP32に搭載されているコプロセッサーで、Ultra Low Powerの略です。非常にかんたんな命令しか利用できませんが、比較的単純な...2020.02.13電子工作
電子工作Arduino IDEでulptoolを使う 概要 ULPのアセンブラを行うesp32ulp-elf-binutilsを、Arduino IDEから使うためのツールである、ulptoolをWindowsにセットアップしてみました。 esp32ulp-elf-binutilsとは? UL...2020.02.05電子工作