问题标签 [cortex-a]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
arm - 将 8bit uint8_t 加载为 uint32_t?
我的图像处理项目适用于灰度图像。我有 ARM Cortex-A8 处理器平台。我想使用NEON。
我有一个灰度图像(考虑下面的例子),在我的算法中,我只需要添加列。
如何将四个 8 位像素值(即uint8_t)作为四个 uint32_t并行加载到 128 位 NEON 寄存器之一中?我必须使用什么内在功能来做到这一点?
我是说:
我必须将它们加载为 32 位,因为如果您仔细观察,我执行 255 + 255 的那一刻是 512,它不能保存在 8 位寄存器中。
例如
compilation - ARM Thumb 模式:代码大小不减小
伙计们,我有一个为 ARM Cortex-A8 处理器编译的项目。我正在使用 GCC 来执行此操作。目前我的可执行文件的大小是 220.1 KB。现在我修改我的 makefile 并添加标志-mthumb
,makefile 行看起来有点像这样 -
我在我的所有 makefile 中进行了这些更改并构建了我的项目,但我最终得到的可执行文件仍然是 220.1 KB。
我对命令行进行了另一项更改,添加了 -mthumb-interwork 选项
我再次得到相同大小的可执行文件 220.1 KB。这样做时我错过了什么吗?
我写了一个小程序,找到两个数字中最小的一个,并使用以下命令行编译它
我得到一个 8.5 KB 的可执行文件
接下来,我做一个
我仍然得到一个 8.5 KB 的可执行文件。
这里有什么问题?
我做了一个cat /proc/cpuinfo
看看我的处理器是否真的支持拇指,我发现它确实受到支持。我得到 -
arm - PLD在手臂皮质a9中的使用
我正在尝试使用 PLD 指令。我面临的问题如下:
我收到以下错误:
arm - PLD对A9皮质没有影响
我正在使用以下程序来检查PLD
对性能的影响。但是,我无法找到使用和不PLD
使用我编写的 C 代码的性能差异。有什么我遗漏的或我需要添加的任何编译器选项吗?
embedded - cortex a9 开机和内存
我是一个新手,从微控制器编程开始。这里感兴趣的芯片是 cortex-a9。在重置或加电时,我的读数中必须有 0x0000000 处的代码。我的问题虽然听起来太微不足道,但会帮助我正确看待一些概念。
内存地址 0x0000000 是否驻留在 ROM 中?从该地址读取代码后会发生什么?是否应该存在某种引导加载程序?如果有,它应该在哪个地址?它是否也应该驻留在 ROM 中?最后,内核在什么时候启动以及内核代码驻留在哪里?
arm - ARM Cortex 处理器中的 L1 高速缓存端口
我做了一些研究,但找不到太多信息。
我想知道 ARM 嵌入式处理器有多少L1读取和 L1 写入端口以及端口的宽度。具体来说,我对 Cortex-A8、Cortex-A9 和 Cortex-A15 感兴趣。
我的盲目猜测是 Cortex-A9 处理器有一个 64 位宽的 L1 读端口和一个 L1 写端口。我的另一个猜测是它有一个共享的读/写端口。对此有什么想法吗?
arm - 如何验证 ARM 工具链中的 VFPv4 功能
我有一个用于 Cortex A15 的预编译 ARM 工具链。我想检查它是否生成正确的 VFPv4 指令。任何机构有任何想法?
arm - 为什么我的 SWI 指令挂起?(BeagleBone Black,ARM Cortex-A8 处理器)
我开始为BeagleBone Black编写一个玩具操作系统,它使用基于 ARM Cortex-A8 的TI Sitara AM3359 SoC和 U-Boot 引导加载程序。到目前为止,我有一个简单的独立 hello world 应用程序写入 UART0,我可以通过 U-Boot 加载它,现在我正试图继续处理中断处理程序,但我无法让 SWI 做任何事情,只能挂起设备。
根据 AM335x TRM(从第 4099 页开始,如果您有兴趣),中断向量表映射到 ROM 中的 0x20000。ROM SWI 处理程序分支到 0x4030ce08 处的 RAM,它分支到存储在 0x4030ce28 处的地址。(最初,这是 0x20084 处的唯一死循环。)
我的代码将所有 ARM 处理器模式的 SP 设置到它们自己的 RAM 顶部区域,并在 CPSR 中启用中断,然后执行 SWI 指令,该指令始终挂起。(也许跳到一些死循环指令?)我查看了一堆示例,阅读了我能找到的任何文档,但我看不出我缺少什么。
目前,我与开发板的唯一交互是通过 UART0 上的串行连接与我的 linux 盒子。U-Boot 初始化 UART0,并允许通过串行连接加载二进制文件。
这是相关的程序集:
那些调试打印产生预期值:
(根据objdump,0x80200164确实是_swi_handler。0xe59ff018是指令“ldr pc, [pc, #0x20]”。)
我错过了什么?看来这应该可行。
assembly - 在 ARM cortex-a 系列上启用 neon
我想在裸金属皮质 A-15 上初始化 NEON cp。在遵循ARM 的指令后,我在平台初始化序列的末尾编写了这个序列:
我收到此错误:
我正在使用 arm-eabi-as --version
:
如果我更改FPEXC
为FPSCR
程序编译并且正在运行引发 unhandler 异常:
c++ - 测量 ARM Cortex-A15 的缓存访问时间/周期
所以我测量了访问 ARM Cortex-A15 的 L2 缓存的周期。我通过分配一个字节来做到这一点
- 使地址无效
- 读取 PMCCNTR 寄存器
- 使用 ldr 访问分配字节的内存位置
- 再次读取 PMCCNTR 寄存器
- 从第二个测量值中减去第一个测量值
我有大约 240 个缓存访问周期和 350 个非缓存访问周期。我还使用了 ISB、DMB 和 DSB。这些数字听起来准确吗?我似乎无法找到可与之比较的官方资源。也许你可以指出我正确的方向。