Android HAL層の内部構造と実装解説: Mokoid LEDサービスの事例

Android HAL層の内部構造と実装解説: Mokoid LEDサービスの事例 Androidシステムにおいて、ハードウェアとフレームワーク層の連携を可能にする重要な役割を担うのがハードウェア抽象化レイヤー(HAL)です。本稿では、MokoidプロジェクトのLEDサービスを具体例として取り上げ、HAL層の実装がどのように行われ、JNI(Java Native Interface)を介してJavaフレームワーク層 ...

8月8日 00:12 投稿

STM32CubeMXで始める組み込み開発実践入門

STM32CubeMXの全体像 STM32CubeはSTMicroelectronicsが提供する統合ソフトウェアエコシステムであり、STM32マイコンおよびマイクロプロセッサ向けの開発を支援します。開発者はIARやKeilといった既存のIDEと組み合わせて利用するだけでなく、STM32CubeMX、STM32CubeProgrammer、STM32CubeMonitorなどのツールを自由に取り込むことができます。 代表的なSTM32開発手法を次 ...

7月17日 00:29 投稿

STM32 HALライブラリを使用したMPU6050のI2C通信とDMP motion_driver 5.1.3の移植

開発環境 Ubuntu 20.04 LTS STM32CubeIDE 1.9.0 MPU6050 DMP ドライバー: motion_driver 5.1.3 マイクロコントローラ: STM32 F103C8T6 motion_driver 5.1.3の移植 以下のファイルをmotion_driver-5.1.3/core/driver/eMPL/ディレクトリからコピーします。 dmpKey.h inv_mpu.c inv_mpu_dmp_motion_driver.h dmpmap.h inv_mpu_dmp_m ...

7月9日 00:11 投稿

STM32 HALライブラリによるW25Q128フラッシュメモリのSPI通信実装

SPI(Serial Peripheral Interface)はマイコンと周辺デバイス間の高速データ伝送を実現する代表的なシリアル通信プロトコルです。128Mbit(16MB)の容量を持つW25Q128フラッシュメモリは、データ記録やプログラム格納用途に広く利用されています。STM32F407はARM Cortex-M4コアを搭載し、ハードウェアSPIインターフェースをサポートする他、ソフトウェアエミュレーション ...

6月30日 20:43 投稿

STM32 HALで赤外線リモコン信号をキャプチャする実装

1. NECフォーマットの概要 NECプロトコルは 38 kHz キャリアを用いた赤外線通信規格である。受信側で観測すると、以下の時間幅でビットが表現される。 論理 1:560 µs の Low 後 1.68 ms の High(合計 2.24 ms) 論理 0:560 µs の Low 後 560 µs の High(合計 1.12 ms) 1フレームは次で構成される。 リーダーコード:9 ms Low → 4.5 ms High アドレス(8 bit、LSB ...

6月27日 22:05 投稿

STM32 HALを用いたMG90Sサーボモータ(180度)の制御手法

サーボモータの概要と制御原理 MG90Sのような標準的なサーボモータは、内部でモータ、ギアヘッド、フィードバック用ポテンショメータ、制御回路を統合したアクチュエータです。入力されたPWM信号に基づいて目標角度を維持する閉ループ制御を行います。一般的に、電源(VCC)、グランド(GND)、制御信号(PWM)の3本の配線で構成されます。 角度制御には周期20ms(50Hz)の ...

6月12日 18:24 投稿

OpenHarmonyにおけるファイルサブシステムの移植方法

OpenHarmonyのutilsコンポーネントは、各業務サブシステムおよび上位アプリケーションから利用可能であり、チップ側のファイルシステム実装に依存している。具体的には、チッププラットフォームがファイルのオープン・クローズ、読み書き、サイズ取得などの基本機能を提供する必要がある。 HALインタフェースの要件 OpenHarmonyのファイルシステムを移植するには、以下の ...

5月16日 21:59 投稿