keil

Literal Pool too Distant?

末鹿安然 提交于 2019-12-12 02:26:27
问题 I'm writing code in ARM assembly language on the Freescale Freedom KL46Z board in the Keil uVision 5 environment. My code is quite lengthy, but in the main part of the code, whenever I try to load (LDR) a constant or variable, I get this error: error: A1284E: Literal pool too distant, use LTORG to assemble it within 4KB I have no idea what this means or how to fix it. The spots where the errors occur are all on similar instructions. For example, the first error is on an instruction that reads

serial communication with arm microcontroller

早过忘川 提交于 2019-12-12 02:09:41
问题 I am trying to send data from the arm cortrx m4 microcontroller to pc through usb. There is a program written in C++ language in codeblocks ide. Basically the program sets the serial communication settings and read data using ReadFile function. The problem is I am getting garbage values at the output even if the baud rate in pc proogram and microcontroller is same. How can I solve this problem? The pc program is shown below. #include <Windows.h> #include <stdio.h> int main(void) { HANDLE

How to write function at particular memory location in flash memory? Is there any directive for that?

元气小坏坏 提交于 2019-12-12 01:52:15
问题 How to write function at particular memory location in flash memory? Is there any directive for that? Do i need particular linker? 回答1: If you are using keil ide you can place a function at a specific address using .ARM.__at_address as the section name. To place the function add at 0x20000, specify: int add(int n1,int n2) __attribute__((section(".ARM.__at_0x20000"))); int add(int n1,int n2) { return n1+n2; } 回答2: Do you use the keil toolchain? If yes, perhaps http://www.keil.com/support/docs

jlink连接32的问题

六眼飞鱼酱① 提交于 2019-12-12 01:07:56
jlink连接32的问题 之前用j-linkV8去调试stm32,用的IDE是KEIL,在连接的时候发生下面这种情况: 这是因为驱动不兼容,通过向大佬请教,解决办法如下: 将老版的MDK中的segger替换现在MDK中的segger文件夹 来源: CSDN 作者: weixin_42595206 链接: https://blog.csdn.net/weixin_42595206/article/details/103496290

Bit fields keil hardfault after restarting

点点圈 提交于 2019-12-11 05:33:49
问题 When I use this struct just after flashing device it works well, but after restarting (power on/off) using this struct(assign to any bit) cause a HardFault irq. I use Keil uVision with STM32F205. Why it not works? and what should I change/remove/add to fix it? Direct using GPIOC->ODR don't cause any problems what is wrong with bitfields in Kail? #pragma anon_unions typedef union { struct { __IO uint16_t Data_Bus:8; // 0-7 data bus __IO uint16_t Ctr_Pins:6; // 8-13 control pins __IO uint16_t

Why am I getting a namespace identifier error?

人走茶凉 提交于 2019-12-11 01:37:52
问题 I am using Keil uVision and I keep getting this error: C:\Keil_v5\ARM\ARMCC\bin\..\include\rw/_defs.h(781): error: #20: identifier "namespace" is undefined What could lead to this error? Isn´t namespace automatically defined? 回答1: It looks like you are using C compilation for C++ code - check the compiler options. In C++ namespace is a reserved word, but not in C, so the compiler will try to interpret it as an identifier rather than a keyword - which will then of course make no sense

keil(MDK)错误记录

99封情书 提交于 2019-12-11 01:06:06
1、 a parameter list without types is only allowed in a function definition (没有类型的参数列表只允许在函数定义中使用) 2、 Error: L6200E: Symbol HAL_UART_Transmit_User multiply defined (by esp8266.o and stm32f1xx_hal_uart.o) 函数重复定义了,在工程里再找找,可能在其他地方重复定义了此函数。 来源: https://www.cnblogs.com/QQ2962269558/p/12018722.html

Keil的RTX特性

本小妞迷上赌 提交于 2019-12-10 14:11:38
Keil RTX是为ARM和Cortex-M设备设计的免版税,确定性的实时操作系统。它允许您创建同时执行多个功能的程序,并帮助创建更好的结构和更容易维护的应用程序。 特征 具有源代码的免版权,确定性RTOS 灵活的调度:循环,抢占和协作 具有低中断延迟的高速实时操作 为资源有限的系统提供小封装 无限数量的任务每个具有254个优先级 无限数量的邮箱,信号量,互斥量和计时器 支持多线程和线程安全操作 内核感知调试支持MDK-ARM 使用μVision配置向导的基于对话框的设置 优点   尽管无需实时操作系统(通过在超级循环中执行一个或多个功能)就可以创建实时程序,这个应该指的是裸机了,但KeilRTX为您解决的RTOS有许多调度,维护和计时问题。 注意事项   所有MDK-ARM版本都包含RTX源代码。 这个系统我只是用过一次,感觉最大的特点就是用起来简单,不需要那么多的注意事项,拿来就用的感觉,还有就是没有关中断的操作,所以你懂的~ 来源: https://www.cnblogs.com/CodeWorkerLiMing/p/12016160.html

Why does STR only work for addresses between 0x40000000 and 0x40003FFF?

陌路散爱 提交于 2019-12-08 10:44:35
问题 Code: dest EQU 0x40000000 AREA name, CODE, READONLY ENTRY MOV r0, #2 LDR r1, =dest STR r0, [r1] stop B stop END This code writes the value of 2 to memory location 0x40000000. When I change this to 0x20000000, 2 fails to get written there. Same thing with 0x3FFFFFFF. When I set the memory location to 0x40003FFF, 2 gets printed onto that location, but when I change the address to 0x40004000, 2 fails to get printed there. Same thing for any address locations higher, like 0x50000000. So according