为什么?��不适用�� 这种指令是由arm编译器生成的
签名字符 ch; 短整数a = 220; 我已返回上述 c 程序以将短 int 分配给有符号字符,如下所示. ch = a;//将short int赋给有符号字符变量ch; 下面是为赋值语句生成的汇编代码. MOV R2, R6, LSL 24 R6 包含一个 220 MOV R0, R0 MOV R2、R2、ASR 24 STRB R2,[SP,3] 我知道 R6 左移 24 位,Aritmetic 右移 24 位以获得存储在堆栈中的有符号字节值. 但我不明白为什么在两个 MOV 操作之间会生成一条 NOP 指令. 一般使用 NOP 指令在编程中引入一些延迟,以等待某些操作完成. 但是这里为什么生成MOV R0,R0有什么意义呢? 请有人澄清一下. 解决方案 Flags. 它清除进位标志,因此它不会通过右移传播到结果值中. http://infocenter.arm.com/help/index.jsp?topic=/com.a
204 2022-07-19
编程技术问答社区
Linux ARM cpuid/cpubrand C++
有没有人知道获取 CPUID 和品牌字符串的方法,甚至可能是功能,类似于 Linux ARM 中的 MMX/SSE 等检测 NEON? 它似乎缺少任何形式的 __cpuid 和 cpuid.h 也不存在 - 至少在我的发行版 (OpenSuSE12.3) 这对我的项目并不重要,但仍然很有趣. 解决方案 https://www.google.com/search?q=get+cpuid+linux[^]. 你没有说你在处理哪个 ARM,但是Raspberry Pi(和其他人)通过命令行告诉您 CPU ID 和其他信息 cat /proc/cpuinfo 您可以通过 system() 调用从 C/C++ 中使用它. Linux ARM,而不是 x86.ARM 没有答案.我会很高兴它会如此简单:)
1356 2022-07-19
编程技术问答社区
臂组件编程
在 arm 汇编代码中,我看到下面的行使用了“=".这个运算符在 arm 中到底使用了什么. ldr r0, =常数 我们可以使用什么常量,例如保存地址或值的任何地址或变量? 我应该像使用它一样 ldr r0, =0x5(5是一个值) 或 ldr r0, =0x400000(其中0x400000是一个地址) 或 ldr r0, =ADDR_PTR(其中 ADDR_PTR 是存放地址的变量) 以上所有内容是否正确,或者我在这里理解错误. 解决方案 假设您没有参考手册的副本,您可以找到通过以下操作很容易回答:https://www.google.com/search?q=arm+assembly[^].
260 2022-07-19
编程技术问答社区
带arm的音频压缩
嗨我写了一个程序,用 lpc1768 对声音信号进行采样 但是 要达到良好的采样率,至少需要 40 到 50 k 个样本,因为每个样本是 12 位,所以体积占用太多 所以我需要使用可以为我压缩它的算法或库 我正在寻找一个图书馆和 但我不知道如何将这个库用于 lpc1768 现在有人可以帮我吗?! 我尝试过的: 我找到了 mini lzo 和 lame mp3 编码器 但是lpc1768的la脚很重 又不知道怎么用 mini lzo 解决方案 看看Zlib.它用于PNG图像压缩并且是无损的.另外,您可以找到用普通的旧 C 语言编写的源代码.它能够进行内存压缩,因此它应该能够完全按照您的意愿行事. 您可以使用mp3解码库,见这篇论文:《音频播放器设计实例》[^] 不过,乍一看,您需要更强大的芯片. 您认为 32KB 的 RAM 可以容纳多长时间的样本?我当然希望您将此示例的存储卸载到 uC 之外的其他设备上,或者将示例流式传输到 PC 或更大的设备
104 2022-07-19
编程技术问答社区
使用C操作ARM CAN总线驱动器#
你好, 我正在做我的理学硕士项目,但在使用 C# 驱动我的 CAN 总线时遇到问题. 我正在使用这个基于 ARM 的 HMI 和来自制造商网页的 Windows CE 6.0 支持的 BSP 源文件: http://www.technexion.com/index.php/products/hmi/th-0735w[^] 我已经成功测试了一个用 C++ 编写的 CAN 总线示例.我使用 C# 设计了我的应用程序,我想在我的应用程序中包含 CAN 总线.我不知道如何将 C# 与 CAN 总线驱动程序链接起来.我有几个 .dll 文件,我认为 omap_can.dll 是与 CAN 总线驱动程序相关联的文件. 我指的是本手册(CAN 驱动程序部分)来调用 CAN 驱动程序,因为 TechNexion 不提供任何文档: http://processors.wiki.ti.com/index.php/WinCE-BSP_ARM-A8_User_Guide#CAN_Se
164 2022-07-19
编程技术问答社区
Arm架构差异
有很多可用的 ARM 版本,例如 ARMv1 到 ARMv6. 这些版本的实际差异是什么.这些版本之间的指令集是否存在很大差异?我在我的一个开发板上使用的是ARM 1176,所以这个1176属于哪个架构版本(v1或v5). 我不清楚 ARM 的约定,有些人在谈论 Cortex-M4 或 M5. 什么是皮质以及它与 arm 或 arm 架构版本的关系.有没有人/公司可以使用ARM架构来开发他们的微控制器/微处理器? arm架构是开源的吗?我问这个是因为,我看不到基于 power pc 的处理器的指令集参考或手册.但是对于 arm 来说,很多东西都可以广泛使用(手册、教程、数据表)? 有人可以澄清一下吗? 解决方案 ARM 不制造 uProcessors:他们制造核心 IP,他们将其许可给任何想要付费在他们的设计中使用它的人 - 并且这也是一个该死的好设计!Arm 架构绝对不是开源的!:笑: 这意味着“基础"是相同的,但是围绕 ARM 内核的“包装"是由每个使用它的公
152 2022-07-19
编程技术问答社区
Arm Xscale错误分支
我正在研究 arm xscale 嵌入式系统.在这里,我看到在 switch case 中执行了一个不正确的分支. 下面是我的开关盒的样子, switch(val) { case 0: .... break; case 1: .... break; case 2: ..... break; case 3: ..... break; default: printf("case value = %d\r\n" ,val); break; } 在上述情况下,我收到的值为零,即 val = 0. 但是 cpu 分支到默认情况,我已经打印了值,该值仅显示为零.“案例值 = 0".看起来很奇怪. Break 语句是正确的.“val"是一个有符号整数(没问题). 我试图理解为这个 sw
118 2022-07-19
编程技术问答社区
转换x86 intel。操作系统库到arm处理器
我有 x86 创建的静态库.所以我想将其转换为 arm ? 解决方案 用 ARM 编译器重新编译原始源:你不能将 X86 机器代码(库将包含的内容)转换为 ARM 机器代码——它们是完全不同的处理器,实际上是处理器的类型.X68 是 CISC,ARM 是 RISC(反正根据制造商的说法:我不同意).
246 2022-07-17
编程技术问答社区
为什么WinCE启动时间会随着时间的推移而变长?
朋友们好! 我已经为我的 CoreWind S3C6410 系统构建了一个 Windows CE 6.0. 第一天一切正常,操作系统在 15 秒内启动,但一段时间后频繁开/关,启动时间增加到 30 秒! 有谁知道为什么会这样? 解决方案 这是常见的问题.系统往往会被越来越多的、通常是未使用的进程所污染.病毒也可能发生;谁知道? 您可以下载和使用注册表清理实用程序.此外,这是可以帮助您找出启动时加载了哪些应用程序、服务和其他进程的应用程序,并消除了不需要的应用程序: http://technet.microsoft.com/en-us/sysinternals/bb963902[^]. 这是一款免费软件,必备之一. —SA
112 2022-07-17
编程技术问答社区
C语言中32位数字的乘法
我在 C 中尝试两个乘法到矩阵,但我不明白为什么会得到这些结果... (我正在尝试编写一个程序,将两个 32 位数字相乘以在只有 32 位寄存器的系统上导入) B = [ 15643 54056 -33591 24466 26823 54561 58751 -25563 -13777 ] 我想做:Btranspose * B #define LOW_WORD(x) (((x) > 16) #define HIGH_WORD(x) ((x) >> 16) #define ABS(x) (((x) >= 0) ? (x) : -(x)) #define SIGN(x) (((x) >= 0) ? 1 : -1) #define UNSIGNED_MULT(a, b) \ (((LOW_WORD(a) * LOW_WORD(b))
94 2022-07-17
编程技术问答社区