ULP

電子工作

ESP32-S3のRISC-VでのULPをArduinoで実行する

概要 ESP32-S3にはRISC-V命令セットのコプロセッサーのULPが搭載されています。ESP-IDF5以降で正式に利用可能になるのですが、一足先にArduinoでの動作実験をしてみました。 先行事例 ESP32-S3のULP-RISC...
電子工作

ESP32のULPアセンブリ言語入門 その8 ulptool

概要 前回までで、Cマクロを使ったULPの解説が終わりました。今回はCマクロではなく、Arduino IDEから直接ULPアセンブラを使うことができるulptoolの紹介をしたいと思います。 ulptoolとは? ulptoolとはArdu...
電子工作

ESP32のULPアセンブリ言語入門 その7 マシン語の構造と逆アセンブラ

概要 前回まででCマクロで定義されている命令をすべて説明しました。今回はマシン語の構造と、逆アセンブラの説明をしたいと思います。 命令の概要 ESP32のULPは、1命令が4バイト固定のRISCアーキテクチャです。一般的なパソコンに使われて...
電子工作

ESP32のULPアセンブリ言語入門 その6 ADC、入力、復帰

概要 前回はビット演算を行いましたが、今回は残った命令をすべて紹介したいと思います。 今回は命令より、仕組み解説が大変なのでスケッチを紹介してから、命令の解説を行います。 ADC(アナログ入力) #include "esp32/ulp.h"...
電子工作

ESP32のULPアセンブリ言語入門 その5 ビット演算

概要 前回はジャンプを中心に説明をしました。今回はビット演算系を解説します。 ビット演算とは? 一般的なビット演算について、かんたんに解説します。 アンド - AND 数値1と数値2の各桁のビットを比べ、両方1である場合のみ1になります。 ...
電子工作

ESP32のULPアセンブリ言語入門 その4 ジャンプ

概要 前回は初歩的な命令までやりましたので、今回はLチカを行いたいと思います。 ULPでのGPIOアクセス ULPからGPIOのアクセスする場合にはArduinoの標準とは違い、RTCを経由して通信をする必要があります。 RTCはおそらくは...
電子工作

ESP32のULPアセンブリ言語入門 その3 演算と基本命令

概要 前回は環境構築まで行いました。今回は命令の説明と、プログラムを実際に動かしてみたいと思います。 ULPプログラミングの方式 ULPのプログラムには2つの方式があります。今回はCマクロ方式で行いますが、アセンブリ方式も説明したいと思いま...
電子工作

ESP32のULPアセンブリ言語入門 その2 環境構築と最小スケッチ

概要 前回はn進数と単位で終わってしまいました。今回はULPの概要についてまとめてみました。 ULPアセンブリの特徴 ULPはESP32のメインプロセッサではなく、省電力でちょっとしたことを動かすコプロセッサーです。最近の携帯電話なども歩数...
電子工作

ESP32のULPアセンブリ言語入門 その1 概要とn進数、単位

概要 ESP32のコプロセッサー用ULPアセンブリ言語の入門向けの情報をまとめました。 ULPとは? ESP32に搭載されているコプロセッサーで、Ultra Low Powerの略です。非常にかんたんな命令しか利用できませんが、比較的単純な...
電子工作

Arduino IDEでulptoolを使う

概要 ULPのアセンブラを行うesp32ulp-elf-binutilsを、Arduino IDEから使うためのツールである、ulptoolをWindowsにセットアップしてみました。 esp32ulp-elf-binutilsとは? UL...
スポンサーリンク