ARMアセンブリにおけるデータ同期とタスク切り替え処理

ARMプロセッサにおける基本的な操作 基本操作1: 汎用レジスタから変数への値転送 基本操作2: ラベルジャンプと条件分岐 基本操作3: 特殊レジスタへの値書き込み 基本操作4: 特殊レジスタからの値読み出しと変数格納 メモリバリア命令の解説 マルチコアプロセッサ環境では、各コアが独自のキャッシュを持っているため、共有メモリへのアクセス時にデータ不整合が発生する ...

8月3日 23:56 投稿

ARMベース環境におけるKubernetesクラスタの構築手順

ARM環境でのKubernetes構築概要 ARMアーキテクチャを採用したサーバー上でKubernetesクラスタを構築する方法について説明します。本手順はUbuntu Serverをベースとした環境を前提としています。 工程 作業内容 1. ハードウェア準備 ARM対応サーバーの用意 2. OSセットアップ Ubuntu Serverのインストール 3. コンテナ環境構築 Docker Engineの導入 4. Kubern ...

7月23日 00:11 投稿

ARM Neon命令セットによるmemcpy最適化の深掘り:なぜ高速化しないのか

画像処理や行列演算などの分野では、ARMのNeon命令セット(SIMD)を用いた高速化が一般的です。しかし、単純なメモリコピー(memcpy)において、128ビット幅のベクトルレジスタを利用すれば、標準のmemcpyよりも高速化できるのではないかという疑問が生じます。結論から述べると、多くの場合、Neonを用いた自作の実装は標準ライブラリのmemcpyに及ばないか、同等程度のパフ ...

7月22日 19:06 投稿

Keil MDKでのARMレジスタグループの確認方法

嵌め込み開発における問題解決において、プログラムが予期せず停止する場合、効率的なデバッグ方法としてARMレジスタの状態を確認することが非常に有効です。この記事では、Keil MDKを使用してARMコアのレジスタ値を確認し、プログラムの異常動作の原因を特定する方法について解説します。 レジスタがなぜ重要か? Cortex-MシリーズのARMアーキテクチャでは、16個の32ビッ ...

7月3日 21:10 投稿

TiDBのX86とARM混合プラットフォームでのオフライン展開とアップグレード

背景 TiDB 5.0のアシンクロナストランザクション機能をX86とARMの混合デプロイメントアーキテクチャで体験する記事が以前に公開されました。その後、オフラインモードでのTiDBクラスタのアップグレード方法について質問がありましたので、この記事ではその手順をまとめます。 デプロイの本質 TiDB 4.0から導入されたTiUPは、複雑なTiDBクラスタの設定を簡単にしてくれる ...

6月23日 18:34 投稿

Cubieboard2公式イメージのセットアップと基本設定

目次- 一、システムの書き込み 1.1 イメージの書き込み 1.2 ファイルシステムの更新 1.3 LEDの無効化 1.4 SDCardの残り容量の拡張 二、ネットワーク設定 三、システムの更新 四、その他の設定 4.1 SSH設定 4.2 時刻設定 4.3 中国語文字化け対策 五、低スペックNASの構築 5.1 SSDのマウント 5.2 Sambaのインストール 5.3 接続方法 5.3.1 Windowsからの接続 5.3.2 Androidス ...

6月19日 22:22 投稿

Cubieboard2のシステム構築:Linux-sunxiベースの開発手順

目次- - 参考資料 その他参考 概要 開発環境構築 1.1 必要なツールのインストール 1.2 ソースコードの取得 1.3 Debianベースシステムの準備 コンポーネントのビルド 2.1 U-Bootのコンパイル 2.1.1 U-Boot-sunxiのブランチ選択 2.1.2 U-Bootのビルドプロセス 2.2 sunxi-toolsのコンパイル 2.3 カーネルの構成とビルド 2.3.1 事前に準備されたカーネル設定のコピー ...

6月8日 16:08 投稿

U-Bootの全志系ARM/ARM64プラットフォームにおけるビルド手順

対象とするハードウェアとアーキテクチャ 本稿では、オープンソースのブートローダであるU-Bootを、Allwinner製SoCを搭載した開発ボード向けにビルドするプロセスについて解説します。具体的には、32ビットARMアーキテクチャ(AArch32)のOrange Pi PC(H3チップ)と、64ビットARMアーキテクチャ(AArch64)のOrange Pi PC 2(H5チップ)を対象としています。 ビルド環境 ...

6月1日 21:16 投稿

ARMメモリコンパイラの調査と使用

複数のバージョンのツールを入手し、それぞれ「sram_dp_hsd_svt_mvt」と「sram_sp_hde_svt_mvt」が存在する。前者はデュアルポート型、後者はシングルポート型である。各々の「hsd」は高速、「hde」は高密度を意味し、最後の「svt_mvt」はトランジスタの種類を示す。実行ファイルを直接起動することでGUIを開くことができる。 ツール内のドキュメントを確認すると、"s ...

5月28日 18:28 投稿

ARM Cortex-MにおけるHardFault_Handlerの詳細な仕組みとデバッグ手法

HardFault異常の深屌:クラッシュ現場からプログラムの「死亡瞬間」を再現する 現場でデバイスが不可解にリセットし、シリアルポートにログが出力されず、JTAGで接続できない、再現できないという経験はありませんか?コードを隅々まで確認しても明確なエラーは見つからない——そんなある日、逆アセンブルを調べてみると、見た目は無害なポインタ操作が一行見つかりました。 ...

5月17日 18:27 投稿