cost 380 ms
在 ARMv6 匯編中,一個代碼不起作用,但修改后的版本有效。 為什么?

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

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

pyelftool 獲取符號絕對地址

[英]pyelftool get symbol absolute address

我的目標:使用 pyelftool 從 elf 文件中檢索變量絕對位置和函數絕對地址,以自動化白盒測試的斷點放置。 我的代碼: 我的問題:上面的代碼返回 cu_ofs 和 die_ofs,比如 cu_ofs 和 die_ofs 不是目標上的真實地址(例如,我可以使用 Ozone 檢查,從源代碼跳轉 ...

用於更多外設的 ATSAMD GCLK[x]

[英]ATSAMD GCLK[x] for more Peripherals

是否可以將一個 GCLK 用於更多外圍設備? ATSAMD09C13 有六個 GCLK 發生器,但這還不夠。 這個例子有效: 這個例子,有兩個 ID 不起作用: 存在解決此問題的方法還是不可能? ...

明確 TST 指令 - ARM 組裝

[英]Clarity About TST Instruction - ARM Assembly

所以這里我有以下代碼(ARMv6 程序集): 我理解除tst指令以外的所有行。 我在網上做了一些研究,我能找到的最好的定義是: 測試寄存器是零還是負。 在寄存器與其自身之間執行邏輯與。 我在理解它的含義時遇到了一些麻煩,所以我嘗試使 C 等同於tst指令,這就是我得到的: 上面的代碼似乎不起作用。 ...

為什么非連續加載速度更快,即使緩存未命中懲罰保證為零?

[英]Why are non-consecutive loads faster, even when the cache miss penalty is guaranteed to be zero?

背景: 我用 C 寫了一個函數並用arm-none-eabi-gcc (7-2018-q2-update) 編譯它。 為循環體生成的匯編代碼看起來每次迭代需要 20 個周期,包括 2 個等待狀態,用於加載操作訪問非易失性程序存儲器中的常量數據。 但是,我的 MCU 的 NVM 控制器緩存說緩存未 ...

Cortex-M0+ 不響應 PendSV

[英]Cortex-M0+ not responding to PendSV

我在 Raspberry Pi Pico(RP2040,Cortex-M0+ 核心,使用 JLink SWD 通過 VSCode cortex-debug 進行調試)上運行,我看到了關於 PendSV 的奇怪行為。 緊接着,SVCall 異常處理程序通過 ICSR 寄存器請求 PendSV。 但是 ...

優化級別的宏 (ARMCC V6)

[英]Macro for optimization level (ARMCC V6)

有預定義的宏,例如__OPTIMIZE__ (在所有優化編譯中定義)和__OPTIMIZE_SIZE__ (如果編譯器正在優化大小則定義)。 我使用這些宏來檢查是否為發布目標設置了正確的優化級別,如果沒有,我會打印出警告。 是否有可能檢查是否設置了優化級別-Ofast ? 可能類似於__OPTIM ...

從 Ada 中的地址 0x0 讀取

[英]Reading from Address 0x0 in Ada

我在裸板運行時運行,從地址零讀取數據是我的軟件中的一個有效用例。 但是,運行時將地址 0x0 視為null ,並在使用-O2編譯時在以下代碼中引發異常。 使用-O1編譯時,代碼的行為符合預期: 有沒有辦法解決這個問題? 我的平台上的詳細信息: Ravenscar 小尺寸運行時移植到 Arm Cor ...

在Armv6上外圍端口重新映射和對齊

[英]Peripheral port remapping and alignment on armv6

在一個舊的Android平板電腦的引導程序中,我找到了一個代碼塊,該代碼塊禁用了mmu,然后重新映射了外圍端口(發生了向超級用戶模式的傳輸,但未顯示)。 我真的不明白如何重新映射外圍端口。 《 ARM1176JZF-S技術參考手冊》的第3-131頁介紹了寄存器的工作方式。 位 ...

確定在 Pi Zero W (armv6) 上導致“非法指令”的庫,並修復構建

[英]Determining the library which causes "Illegal instruction" on a Pi Zero W (armv6), and fixing the build

我知道 Pi Zeros 上的很多編譯問題是由於它們使用 armv6,而較新的 Raspberry Pi,如 3 A+ 和 B+ 使用 armv7。 但是,我不明白如何在導致問題的應用程序中找到有問題的庫,以及是否可能有一個簡單的解決方法來解決這個問題。 背景: 我正在嘗試將應用程序從 Linux ...

Raspberry Pi 1B安全配置寄存器

[英]Raspberry Pi 1B Secure Configuration Register

現在,我為RPi制造低級別的裸機工具。 而且我需要獲取安全配置寄存器值。 我寫了以下指令mrc p15, 0, r0, c1, c1, 0來獲取它。 但是CPU進入未定義異常模式 , CPSR值為0x600001DB 。 讀取SCR值的指令是CPU執行的第一條指令。 我已經多次 ...

armv7生成的ELF文件,armv6生成的.o文件,同時使用-march=armv6,為什么?

[英]ELF file generated in armv7, .o files in armv6, while using -march=armv6, why?

我正在嘗試將我的程序編譯為 armv6,但 ELF 文件是為 armv7 構建的,即使我使用-march=armv6選項也是如此。 所有的.o文件都編譯到了armv6,只有ELF文件是錯誤的。 基本上我是這樣編譯的: arm-linux-gnueabihf-g++ -static -march= ...

Gcc裸屬性留下一些尾隨函數序言作為指令

[英]Gcc naked attribute leaves some trailing function prologue asm instructions

我在cortex-m0上有一個svc異常處理程序的以下實現: 當我為cortex-m0構建它時,它看起來像這樣: 當然,導致硬故障,R7中的值是“未定義的”,並且它很可能包含不在地址范圍內的值。 當我刪除裸屬性時,程序集更有意義: 我之前沒有使用過裸屬性,為什么現在 ...

ARM 預取解決方法

[英]ARM prefetch workaround

我有一種情況,其中某些地址空間是敏感的,因為您閱讀它會崩潰,因為那里沒有人響應該地址。 bx 不是由編譯器作為指令創建的,而是一個 32 位常量的結果,該常量不適合作為單個指令中的立即數,因此設置了 pc 相對負載。 這基本上是文字池。 它碰巧有一些類似於 bx 的位。 可以輕松編寫測試程序 ...

Raspberry Pi零的Adacore Gnat

[英]Adacore Gnat for Raspberry Pi Zero

我開始在樹莓派上玩Adacore Gnat 2016。 在Raspberry Pi 2上進行了一些瑣碎的測試后,我切換到Raspberry Pi Zero W,一切都失敗了。 我有點天真,完全忽略了RPi 2上有一個ARMv7,而RPi Zero上有一個ARMv6。 現在,我想知道是否有可 ...

如何使用PhoneGap Build的crosswalk webview插件獲取ARMv6架構的Android應用程序?

[英]How to get android app for ARMv6 architecture with crosswalk webview plugin from PhoneGap Build?

將crosswalk webview插件添加到我的應用程序后,我收到了x86版本或ARMv7版本。 但我希望我的應用程序也可以在具有ARMv6架構的設備上運行,並且我知道ARMv6架構的應用程序集也可以在ARMv7上運行,但這對ARMv7來說不適用於ARMv6。 這就是我想要獲得ARMv6版 ...

使用gnueabihf為ARMv6構建

[英]build for ARMv6 with gnueabihf

我嘗試為ARMv6構建應用程序,但是失敗了。 我猜問題出在工具鏈上,它支持Hard Float,但ARMv6不支持。 好吧,首先我設置-march = armv6,其中編譯失敗。 /opt/gcc-linaro-arm-linux-gnueabihf-4.8-2014.03_li ...

ARMv6-M 內存保護單元

[英]ARMv6-M memory protection unit

在閱讀ARMv6-M的文檔時,我第一次遇到了內存保護單元(並沒有那么復雜)。 根據文檔,有一個名為 MPU_RASR 的寄存器(代表“MPU 區域屬性和大小寄存器”)並且顯然有多個寄存器(如果我理解正確的話,每個內存區域一個)。 我的問題是我怎么知道這個寄存器有多少副本存在? (我從 Valida ...

2015-12-30 00:40:19   1   225    arm / armv6 / mpu  
SIGSEGV在ARMv6上的數組中執行機器代碼

[英]SIGSEGV at executing machine code from array on ARMv6

我正在嘗試在ArchLinux下執行第一個Raspberry Pi上存儲在數組中的機器代碼。 我已經在x86下完成了,但是在ARMv6下我做錯了。 問題在於數組中的代碼無關緊要,它在執行第一條指令后始終會崩潰。 在gcc 5.2.0中禁用了Thumb交互功能的情況下編譯代碼。 這是我 ...

ARMv8 AArch32模式是否與armv4,armv5或armv6向后兼容?

[英]Does ARMv8 AArch32 mode has backward compatible with armv4 , armv5 or armv6?

我們知道ARMv8 AArch32位模式完全向后兼容ARMv7架構。 ARMv7與ARMv4,ARMv5te和ARMv6向后兼容。 從上面的陳述,可以說ARMv8 AArch32模式也向后兼容ARMv4,ARMv5te和ARMv6。 即使用ARMv4,ARMv5te或ARMv6編譯的代 ...


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