cost 91 ms
實現半精度浮點運算的 ARM 條指令列表

[英]List of ARM instructions implementing half-precision floating-point arithmetic

Arm A-profile架構的架構參考手冊(強調已添加): FPHP,位 [27:24] 0b0011 與 0b0010 一樣,增加了對半精度浮點運算的支持。 一個簡單的問題:在哪里可以找到實現半精度浮點運算的 ARM 條指令的列表? 更新。 根據 Clang 的 Arm (armclang ...

為什么使用ADDS指令時R8被修改了?

[英]Why is R8 being modified when using ADDS instruction?

我正在使用 ARMSIM 測試我的 Arm 匯編代碼。 我看到 R8 無故更新。 當我使用常規 ADD 指令時,不會發生這種情況。 我知道 ADDS 會更新標志,但為什么是 R8? ...

AArch64 的 QEMU:為什么執行停留在“ldr q1,[x0]”?

[英]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:調用地址為 function 生成 BLX 而不是 BL

[英]ARM GCC + Cortex M4: Calling address as function generates BLX instead of BL

我為 CortexM4 CPU 構建了盡可能少的操作系統,它能夠通過 UART 接收編譯的二進制文件並動態調度它們。 我想使用該功能來制作一個測試套件,該測試套件上傳測試程序能夠直接調用操作系統功能,如 memory 分配,而無需執行 SVC。 因此,我需要將這些操作系統例程的固定地址轉換為 fu ...

mmap 和指令/數據緩存一致性:為什么我們可以復制和運行共享庫?

[英]mmap and instruction / data cache coherency: Why can we copy and run shared libraries?

在 ARM 上,在向 memory 寫入指令后,在執行指令之前需要一個 memory 屏障。 具體清理數據緩存,使指令緩存無效,然后在將執行代碼的 CPU 上執行指令同步屏障 ( ISB )。 可以使用cp復制可執行文件或共享庫,然后在沒有顯式 memory 障礙的情況下執行。 這相當於: 打開 ...

如何用JLink JTAG加載二進制文件到DRAM進行調試?

[英]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 ...

2023-01-29 07:23:27   2   53    arm / jtag  
ARM ISA中MOV和CPY指令的區別

[英]Difference between MOV and CPY instruction in ARM ISA

ARM ISA中的MOV和CPY指令有什么區別? 我似乎找不到有效的區別。 ...

2023-01-26 16:48:45   1   33    arm / embedded  
32位系統中16位操作的原子性

[英]Atomicity of 16-bit operations in a 32-bit system

考慮一個 32 位系統(例如 ARM RISC MCU),如何確保以原子方式寫入/讀取 16 位變量? 基於此文檔,如果我理解正確,16 位和 8 位操作都是原子操作,但僅假設 memory 對齊。 問題是,編譯器是否總是將 memory 與 32 位字對齊(不包括打包結構等情況)? 此處的基本原理 ...

2023-01-25 08:35:42   2   57    c / arm / atomic  
在 ARMv6 匯編中,一個代碼不起作用,但修改后的版本有效。 為什么?

[英]in ARMv6 assembly one code is not working, but the modified version works. Why?

我在 armv6 程序集中有一個程序,它計算 (x +y)^2 的結果此代碼不起作用,並返回:“不受支持的 ARM 系統調用:0xffffffdf” 但是這個經過稍微編輯並且可以工作(或者沒有?): 誰能告訴我為什么第一個代碼不起作用? 第二個甚至有效嗎? ...

如何在 ARM 或 THUMB 模式下寫入 function 以讀取 ARM CPSR?

[英]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 ...

2023-01-22 23:57:09   2   53    gcc / arm  
例如,在 arm 程序集中,如何創建一個數組然后將每個元素遞增 10?

[英]In arm assembly, how can I create an array then increment each element by 10, for example?

我想修改並完成我的教科書 (Harris-Harris) 中的一個示例。 例如,我如何編寫一個程序來聲明一個包含 5 個元素的數組,然后將每個元素遞增 10? 該程序還必須打印數組的元素。 我搜索了一些資源,發現有多種方法可以在程序集 ARM 中創建數組。但是,在我發現的這些示例中,有一些我不理 ...

模擬異構系統,例如具有 P 和 E 內核的 ARM 處理器

[英]Emulating a heterogenous system, like an ARM Processor with P and E Cores

我正在嘗試模擬一個處理器,該處理器由每個內核具有不同最大頻率的處理器內核組成,例如 ARM 處理器或更新的 Intel 處理器,它們具有幾個性能內核和效率內核。 我用 Qemu 試過了,但沒走多遠,我唯一發現的是qemu-system-aarch64 ,你可以在其中使用 nema 配置每個芯片的內核 ...

gcc 常量的內聯 asm 模板 hash

[英]gcc inline asm template for constant with out hash

我正在嘗試發出一個基於#define VALUE 的全局符號。 我的嘗試如下: gcc 向匯編程序發出的內容如下: 我怎樣才能擺脫VALUE之前的.set中的 hash。 FWIW,我的目標是 ARM。 ...

是否允許編譯器在棧上的一個object出scope時不收回棧指針?

[英]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 中得 ...

在 an505 M33 Qemu 上測量循環計數

[英]Measuring Cycle Count on an505 M33 Qemu

我正在嘗試使用 QEMU 模擬 Arm 皮質 M33,使用 an505 model。我使用這個git 存儲庫作為起點。 我已經成功地構建了這個項目,甚至設法對其進行了調試,但是現在我想測量消耗的 cpu 周期——沒有任何運氣。 首先,我嘗試像這樣訪問 DWT 寄存器: 但是 ARM_CM_DWT_C ...

為什么 C 代碼在 __attribute__((naked)) 函數中不能正常工作?

[英]Why doesn't C code work properly in __attribute__((naked)) functions?

我正在研究 ARM CORTEX 微控制器,並為線程的上下文切換編寫了 function 'x'。 這個 function 包括所有 __asm() 調用,因此我使用了__attribute__((naked)) 。 一段時間后,當我調用 function f() 時,整個 function x( ...

2023-01-20 17:07:33   1   59    c / arm  
如何在 macOS 上啟用 Arm 指針驗證碼 (PAC)?

[英]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 鏈注入惡意代碼,通常利用堆棧上的緩沖區溢出。 我嘗 ...

2023-01-20 16:37:03   1   25    assembly / arm  
如何使用 GNU -Os 在 ARM 中保持堆棧幀正確?

[英]How to keep stack frame right in ARM with GNU -Os?

我正在使用 arm-linux-gnueabi-gcc 構建和運行應用程序,並且正在測試 Linux 中的堆棧回溯 function。 然后我發現如果應用程序是使用 -Os 選項構建的,堆棧回溯不會按預期工作。 沒有-Os,它可以很好地顯示回溯。 我想讓編譯后的代碼盡可能小,但仍然需要堆棧回溯才能 ...

2023-01-20 14:33:19   1   31    linux / gcc / arm  
防止 CPU 內核使用 LL 緩存

[英]Prevent a CPU core from using the LL cache

我有以下問題:我有一個在核心 0 上運行的低延遲應用程序,以及一個在核心 1 上運行的常規應用程序。我想確保核心 0 應用程序獲得盡可能多的緩存,因此,我想制作核心1 繞過L3緩存(根本不用)和go直接在memory取數據。 有沒有其他方法可以實現核心 0 應用程序優先使用 L3 緩存? ...


 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM