![](/img/trans.png)
[英]List of ARM instructions implementing half-precision floating-point arithmetic
Arm A-profile架構的架構參考手冊(強調已添加): FPHP,位 [27:24] 0b0011 與 0b0010 一樣,增加了對半精度浮點運算的支持。 一個簡單的問題:在哪里可以找到實現半精度浮點運算的 ARM 條指令的列表? 更新。 根據 Clang 的 Arm (armclang ...
[英]List of ARM instructions implementing half-precision floating-point arithmetic
Arm A-profile架構的架構參考手冊(強調已添加): FPHP,位 [27:24] 0b0011 與 0b0010 一樣,增加了對半精度浮點運算的支持。 一個簡單的問題:在哪里可以找到實現半精度浮點運算的 ARM 條指令的列表? 更新。 根據 Clang 的 Arm (armclang ...
[英]Why is R8 being modified when using ADDS instruction?
我正在使用 ARMSIM 測試我的 Arm 匯編代碼。 我看到 R8 無故更新。 當我使用常規 ADD 指令時,不會發生這種情況。 我知道 ADDS 會更新標志,但為什么是 R8? ...
[英]QEMU for AArch64: why execution stucks at "ldr q1, [x0]"?
我有這個簡單的 C 代碼: 編譯為: 並執行為: 印刷: 為什么不打印yyy ? 通過減少問題,我發現: 對於strcpy GCC 生成的代碼不是“調用 strcpy”(見下文) ldr q1, [x0]導致不打印yyy 。 這是foo的生成代碼: 如果我將ret放在ldr q1, [x0]將打 ...
[英]ARM GCC + Cortex M4: Calling address as function generates BLX instead of BL
我為 CortexM4 CPU 構建了盡可能少的操作系統,它能夠通過 UART 接收編譯的二進制文件並動態調度它們。 我想使用該功能來制作一個測試套件,該測試套件上傳測試程序能夠直接調用操作系統功能,如 memory 分配,而無需執行 SVC。 因此,我需要將這些操作系統例程的固定地址轉換為 fu ...
[英]mmap and instruction / data cache coherency: Why can we copy and run shared libraries?
在 ARM 上,在向 memory 寫入指令后,在執行指令之前需要一個 memory 屏障。 具體清理數據緩存,使指令緩存無效,然后在將執行代碼的 CPU 上執行指令同步屏障 ( ISB )。 可以使用cp復制可執行文件或共享庫,然后在沒有顯式 memory 障礙的情況下執行。 這相當於: 打開 ...
[英]How to load binary to DRAM with JLink JTAG to debug?
我正在做一個 ARM+RTOS 項目,我想用 JLink JTAG 下載二進制文件到目標板。 但是每次'loadbin a.bin 0x40000000'都會報錯-1,說'failed to read memory',0x40000000是DRAM的起始地址。 我必須使用“r”命令重置 JTAG ...
[英]Difference between MOV and CPY instruction in ARM ISA
ARM ISA中的MOV和CPY指令有什么區別? 我似乎找不到有效的區別。 ...
[英]Atomicity of 16-bit operations in a 32-bit system
考慮一個 32 位系統(例如 ARM RISC MCU),如何確保以原子方式寫入/讀取 16 位變量? 基於此文檔,如果我理解正確,16 位和 8 位操作都是原子操作,但僅假設 memory 對齊。 問題是,編譯器是否總是將 memory 與 32 位字對齊(不包括打包結構等情況)? 此處的基本原理 ...
[英]in ARMv6 assembly one code is not working, but the modified version works. Why?
我在 armv6 程序集中有一個程序,它計算 (x +y)^2 的結果此代碼不起作用,並返回:“不受支持的 ARM 系統調用:0xffffffdf” 但是這個經過稍微編輯並且可以工作(或者沒有?): 誰能告訴我為什么第一個代碼不起作用? 第二個甚至有效嗎? ...
[英]How to write a function to read ARM CPSR in either ARM or THUMB mode?
我正在使用 ARMv7 (Cortex-A7) 系統,我想在 ARM 模式或 THUMB 模式下從 C 文件讀取 CPSR。 首先,我在 C function 中使用了嵌入式 ASSEMBLY 指令,如下所示, 當我用 -mthumb 編譯 C 文件並用 GDB 運行代碼時,它顯示 regval ...
[英]In arm assembly, how can I create an array then increment each element by 10, for example?
我想修改並完成我的教科書 (Harris-Harris) 中的一個示例。 例如,我如何編寫一個程序來聲明一個包含 5 個元素的數組,然后將每個元素遞增 10? 該程序還必須打印數組的元素。 我搜索了一些資源,發現有多種方法可以在程序集 ARM 中創建數組。但是,在我發現的這些示例中,有一些我不理 ...
[英]Emulating a heterogenous system, like an ARM Processor with P and E Cores
我正在嘗試模擬一個處理器,該處理器由每個內核具有不同最大頻率的處理器內核組成,例如 ARM 處理器或更新的 Intel 處理器,它們具有幾個性能內核和效率內核。 我用 Qemu 試過了,但沒走多遠,我唯一發現的是qemu-system-aarch64 ,你可以在其中使用 nema 配置每個芯片的內核 ...
[英]gcc inline asm template for constant with out hash
我正在嘗試發出一個基於#define VALUE 的全局符號。 我的嘗試如下: gcc 向匯編程序發出的內容如下: 我怎樣才能擺脫VALUE之前的.set中的 hash。 FWIW,我的目標是 ARM。 ...
[英]Is the compiler allowed to not retract the stack pointer when an object on the stack goes out of scope?
我使用的是 Raspberry Pi Pico,它有兩個內核,都有一個 4KB 堆棧,core0 在 core1 之上,這樣 core0 在單線程應用程序中就有 8KB 的堆棧。 引發這個問題的要點如下: 這里我們在堆棧上分配了 4KB,“而我們有 8KB 的堆棧”。 然后我們從 scope 中得 ...
[英]Measuring Cycle Count on an505 M33 Qemu
我正在嘗試使用 QEMU 模擬 Arm 皮質 M33,使用 an505 model。我使用這個git 存儲庫作為起點。 我已經成功地構建了這個項目,甚至設法對其進行了調試,但是現在我想測量消耗的 cpu 周期——沒有任何運氣。 首先,我嘗試像這樣訪問 DWT 寄存器: 但是 ARM_CM_DWT_C ...
[英]Why doesn't C code work properly in __attribute__((naked)) functions?
我正在研究 ARM CORTEX 微控制器,並為線程的上下文切換編寫了 function 'x'。 這個 function 包括所有 __asm() 調用,因此我使用了__attribute__((naked)) 。 一段時間后,當我調用 function f() 時,整個 function x( ...
[英]How to enable the Arm Pointer Authentication Code (PAC) on macOS?
如何在 macOS 上啟用 Arm 指針驗證碼 (PAC)? 我有一台配備 Apple M1 芯片的 MacBook Air。 CPU 實現 Arm 架構版本 v8.5-A,其中包括指針驗證碼 (PAC) 指令。 此功能通常用於防止通過 ROP 鏈注入惡意代碼,通常利用堆棧上的緩沖區溢出。 我嘗 ...
[英]How to keep stack frame right in ARM with GNU -Os?
我正在使用 arm-linux-gnueabi-gcc 構建和運行應用程序,並且正在測試 Linux 中的堆棧回溯 function。 然后我發現如果應用程序是使用 -Os 選項構建的,堆棧回溯不會按預期工作。 沒有-Os,它可以很好地顯示回溯。 我想讓編譯后的代碼盡可能小,但仍然需要堆棧回溯才能 ...
[英]Prevent a CPU core from using the LL cache
我有以下問題:我有一個在核心 0 上運行的低延遲應用程序,以及一個在核心 1 上運行的常規應用程序。我想確保核心 0 應用程序獲得盡可能多的緩存,因此,我想制作核心1 繞過L3緩存(根本不用)和go直接在memory取數據。 有沒有其他方法可以實現核心 0 應用程序優先使用 L3 緩存? ...
[英]Is the gpio remapping of stm32 related to armv7, Arm Cortex-M4 processor?
stm32中很多芯片的gpio remapping是沒有規則的。 我想在 armv7 或 Arm Cortex-M4 找到規則來適配不同芯片的 gpio 重映射。 ...