keil相关内容

如何在 Stellaris 中的程序之间跳转

我正在为 Stellaris LM3S1607 芯片开发引导加载程序.我正在使用 Keil MicroVision4 C 编译器.这个想法是创建 2 个独立的固件,一个将更新另一个.在固件 1 中,我下载了固件 2 文件并将其写入地址 0x3200 的闪存.直到这里它正在工作.我还验证了数据是否正确写入闪存.现在我有两个应用程序.一个是我的 uip 引导加载程序,而 seoncd 一个是我的主要项 ..
发布时间:2022-01-25 12:10:03 其他开发

什么是非对齐访问?(ARM/基尔)

我正在使用 Keil 为 ARM 7 编写程序集. 我有以下运行时错误: 非对齐访问:ARM 指令在 000000F8H,内存访问在 7F7F7F7FH数据中止:ARM 指令在 000000F8H,内存访问在 7F7F7F7FH 这并没有真正帮助我,因为我不知道“非对齐访问"是什么,(除了显而易见的,但我并不真正理解它的含义)我我试图访问(存储)0x7F7F7F7F,有什么问题? ..
发布时间:2022-01-17 13:46:59 其他开发

如何在 Keil 中启用 Linker MAP 文件生成?

如何在Keil MDK-ARM中启用Linker MAP文件的生成,在 IAR Embedded Workbench 中,我使用以下步骤选项 > 链接器 > 列表 > 选中生成链接器映射文件.我尝试在 Keil,MDK-ARM 上使用相同的步骤,但没有用,任何帮助将不胜感激 解决方案 Project->Options for Target target name...->Listing T ..
发布时间:2021-11-17 22:42:04 其他开发

如何在ARM汇编中编写至少两个`area`?

我正在尝试编写一个区域来定义我在 RAM 上的数据,以及一个用于我的代码的区域.我试图这样做,但我无法让它发挥作用.我也尝试过使用 EXPORT 和 IMPORT 但在使用它们时我无法解决各种错误. AREA HEAP, READWRITE, ALIGN=3MYSTR DCB "JaVid",0区域重置,代码,只读;导入MYSTR入口ADR R0, MYSTR ;字符串指针下一个 LDRB R ..
发布时间:2021-11-17 22:41:52 其他开发

文字池太远?

我正在 Keil uVision 5 环境中的 Freescale Freedom KL46Z 板上用 ARM 汇编语言编写代码.我的代码很长,但在代码的主要部分,每当我尝试加载 (LDR) 常量或变量时,我都会收到此错误:错误:A1284E:文字池太远,使用LTORG将其组装在4KB以内我不知道这意味着什么或如何解决它.发生错误的地方都在类似的说明上.例如,第一个错误出现在一条指令上:LDR R ..
发布时间:2021-11-17 22:40:13 其他开发

如何在STM32F103C8T6上做裸机LED闪烁?

我刚刚开始探索 STM32 MCU.我想使 BluePill(具有 STM32F103C8T6 MCU)板上的 LED 闪烁.我怀疑我被什么东西误导了.根据F1系列的参考手册,有3个主要步骤: 为 PORT 启用时钟(此处为 PORTC) 配置 CNF/MODE 寄存器 根据需要配置 ODR 寄存器,即引脚上的高/低. 我已经按照手册在 KEIL MDK 中编写了代码,但在加载后, ..
发布时间:2021-11-17 22:32:56 其他开发

为什么 STR 仅适用于 0x40000000 和 0x40003FFF 之间的地址?

代码: dest EQU 0x40000000区域名称、代码、只读入口移动 r0,#2LDR r1, =destSTR r0, [r1]停止 B 停止结尾 此代码将 2 的值写入内存位置 0x40000000.当我将其更改为 0x20000000 时,2 无法在那里写入.与 0x3FFFFFFF 相同.当我将内存位置设置为 0x40003FFF 时,2 会打印到该位置,但是当我将地址更改为 0 ..
发布时间:2021-11-17 22:25:10 其他开发

armcc中.arm.extab条目的结构是什么?

我正在尝试准确了解异常表 (.arm.extab) 的工作原理.我知道这取决于编译器,因此我将自己限制在 armcc(因为我使用的是 Keil). 表中的典型条目如下所示:b0aa0380 2a002c00 01000000 00000000 据我所知,第一个字为个性例程编码指令,而第三个字是将 R_ARM_PREL31 重定位到 catch 块的开头. 让我感到困惑的是第二个词 ..
发布时间:2021-11-17 21:55:58 C/C++开发

错误:L6236E:没有节匹配选择器 - 没有节是第一个/最后一个

我是使用 Keil Microvision V5.12 编译器进行 ARM 编程的新手.我无法编译一个简单的汇编项目,出现此错误: .\Objects\learn.sct(7): error: L6236E: 没有节匹配选择器 - 没有节是第一个/最后一个. 我已尝试搜索,但找不到任何解决此问题的方法. 这就是我所做的: 创建一个项目(没有启动文件) 添加新的程序集文件 (lea ..
发布时间:2021-11-17 21:55:31 其他开发

ARM Cortex-M 编译器差异

我将要为我的项目使用 C 语言为 STM32 处理器上的 Cortex-M 内核开发一些固件,并在网上搜索我发现了很多不同的编译器:Keil、IAR、Linaro、Yagarto 和 ARM 嵌入式处理器的 GNU 工具. 我想知道,这些编译器之间有哪些功能差异可能会影响我的选择?例如,作为发烧友,我不需要供应商的支持或帮助,目前对代码大小进行限制是可以的.此外,易用性也不是主要问题,因为我 ..
发布时间:2021-11-17 21:53:32 其他开发

Cortex M3 的引导加载程序

我正在使用来自 mbed 的 LPC 1768 板,(带有 cortex M3 cpu)并且我试图在这里实现一些东西,主要是从 SD 卡升级用户应用程序,我正在编写两个程序,首先是引导加载程序/纳米-内核和用户应用程序(helloworld 将用于开始): 0x00 地址处的引导加载程序/纳米内核运行,它会做一些检查并最终抓取 SD 卡上的二进制文件 Bootloader/nano-ker ..
发布时间:2021-11-17 21:46:21 其他开发

什么是非对齐访问?(ARM/凯尔)

我正在使用 Keil 为 ARM 7 编写程序集. 我有以下运行时错误: 非对齐访问:ARM 指令在 000000F8H,内存访问在 7F7F7F7FH数据中止:ARM 指令在 000000F8H,内存访问在 7F7F7F7FH 这并没有真正帮助我,因为我不知道什么是“非对齐访问"(除了显而易见的,但我真的理解是什么意思)我正在尝试访问(存储)到0x7F7F7F7F,有什么问题? ..
发布时间:2021-11-17 21:46:08 其他开发

如何在 arm 内联汇编中访问局部 C 变量?

我想访问内联臂程序集中在 C 中声明的局部变量.我该怎么做? 全局变量可以这样访问, int temp = 0;功能(){__asm(".global temp\n\t""LDR R2,=temp\n\t""LDR R2, [R2, #0]\n\t");} 但是我如何访问局部变量呢?我尝试将局部变量的“.global"更改为“.local",但它产生了错误(对“temp"的未定义引用). ..
发布时间:2021-11-17 21:44:06 其他开发

为什么随着 APB1 频率的变化,USART 传输的数据不正确.(RCC <= 21MHz)

我想在我的项目中使用 USART 通信协议.提供了通信,但发送了错误数据(STM> PC). 我会尝试: 边界带相同. 测试了 PLL 源多路复用器 (HSI-HSE) 和系统时钟多路复用器 (HSI-HSE-PLLCLK) 的合适组合.可用:HSE 和 PLLCLK APB1 时钟频率在允许范围内改变.观察到在每次变化时获得的数据也发生了变化.有时 STM 发送的数据非常 ..
发布时间:2021-08-30 19:28:33 其他开发

STM32F103C8T6上的裸机LED如何闪烁?

我刚刚开始探索STM32 MCU.我想使BluePill(具有STM32F103C8T6 MCU)板上的LED闪烁.我怀疑我被某些东西误导了.根据F1系列参考手册,主要包括3个步骤: 为PORT(在此为PORTC)启用时钟 配置CNF/MODE寄存器 根据需要配置ODR寄存器,即引脚上的HIGH/LOW. 我已经按照手册在KEIL MDK中编写了代码,但是在加载后,代码没有运行,我 ..
发布时间:2021-05-04 19:02:56 其他开发