keil相关内容

为什么float类型在Keil上能很好地工作而在Eclipse(gcc)上却不能

正如标题中所述,我面临着非常好奇(也许不是这样)的行为.虽然我的程序在使用Keil编译时可以正常工作,但是当使用gcc编译相同的代码时,float变量的行为却很奇怪. 在我的代码中,我用floatf printf变量:用Keil编译时,它给了我正确的值(即: float value = 0.15 ,但用gcc时, printf 返回空白内容,例如: float value = ) 有人 ..
发布时间:2021-05-03 19:42:06 Java开发

将外部静态库的段放置到特定位置

我的应用程序调用了一些放置在外部静态库中的函数.我将外部静态库链接到我的应用程序,并且一切正常(在这种情况下,我使用的是GCC). 尽管如此,库的文本,.data和.bss节的位置(地址)是由链接器选择的.我可以通过修改链接描述文件来选择/更改它们的位置,但这很麻烦,因为我必须指定库的所有函数,变量等.我的意思是这样的: . = 0x1000; /* new location */ K ..
发布时间:2020-11-12 23:17:46 其他开发

在Eclipse IDE中使用GCC编译器编译RTX内核文件

我们在KEIL IDE中有一个针对LPC2148的项目,其中包含RTX内核程序以及其他程序,这些项目是由ARM CC编译的。现在,我们需要将IDE从KEIL(ARM CC)更改为Eclipse(GCC)。当我们尝试在Eclipse GCC编译器中对其进行编译时,它在RTX_Config.c和RTX_Config.h文件中显示错误。使用GCC编译器成功编译了其他文件。但是RTXConfig.c文件具 ..
发布时间:2020-10-27 06:56:02 Java开发

UINT32_C和uint32_t之间的区别

据我所知 uint32_t 中的后缀 t 表示 t 类型,但我想知道 C是什么在 UINT32_C 中有什么区别? 解决方案 UINT32_C 是一个宏,它定义类型为 uint_least32_t 的整数常量。例如: UINT32_C(123)//可能在uint_least32_t为无符号long //的系统上扩展为123UL //如果uint_least32_t是unsign ..
发布时间:2020-09-28 04:19:31 其他开发

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

如何在Keil MDK-ARM中启用链接器MAP文件的生成 在IAR Embedded Workbench中,我使用以下步骤 选项>链接器>列表>选中生成链接器映射文件. 我尝试在Keil,MDK-ARM上使用相同的步骤,但是没有用,将不胜感激 解决方案 Project->目标目标名称 ...->“列表"选项卡->“链接器列表"复选框,请根据需要选择子选项. 也有用: 在项目- ..
发布时间:2020-09-07 03:14:23 其他开发

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

我试图确切地了解异常表(.arm.extab)的工作方式. 我知道这是依赖于编译器的,所以我将自己限制为armcc(因为我正在使用Keil). 表中的典型条目如下所示: b0aa0380 2a002c00 01000000 00000000 据我了解,第一个单词编码个性化例程的指令,而第三个单词是R_ARM_PREL31重定位到catch块开始的位置. 让我感到困惑的是第二个单词 ..
发布时间:2020-07-17 19:18:20 C/C++开发

无法在Atollic中使用CMSIS库

我正在尝试为Atollic TrueStudio中的STM32微控制器使用CFFT函数.但是我无法使用任何DSP功能.我得到了错误- 未定义对"arm_cfft_f32"的引用和未定义对"arm_cfft_sR_f32_len16"的引用.我不知道问题出在哪里,因为它可以在Keil上运行.我在做什么错了? #include "stm32f4xx.h" #include "ar ..
发布时间:2020-06-26 12:54:55 其他开发

如何在FreeRTOS中更改任务的最大可用堆大小?

我通过以下方式在任务内创建元素列表: l = (dllist*)pvPortMalloc(sizeof(dllist)); dllist是32字节大. 我的嵌入式系统具有60kB SRAM,因此我希望系统可以轻松处理我的200个元素列表.我发现为8个元素分配空间后,系统在第9个malloc函数调用(256byte +)时崩溃. 如果可能的话,在哪里可以更改freeR ..
发布时间:2020-05-05 12:33:01 其他开发

如何在闪存的特定存储位置写入功能?有任何指令吗?

如何在闪存的特定存储位置写入功能?有任何指令吗?我需要特定的链接器吗? 解决方案 如果使用的是keil ide,则可以使用.ARM .__ at_address作为节名称在特定地址处放置函数.要将函数add放置在0x20000,请指定: int add(int n1,int n2) __attribute__((section(".ARM.__at_0x20000"))); int ..
发布时间:2020-05-01 03:53:26 其他开发

与臂微控制器的串行通信

我正在尝试通过usb从arm cortrx m4微控制器发送数据。有一个用C ++语言编写的代码块中的程序。基本上该程序设置串行通信设置并使用ReadFile功能读取数据。 问题是,即使pc程序和微控制器中的波特率相同,我也会在输出中获取垃圾值。 我如何解决这个问题? pc程序如下所示。 #include ..
发布时间:2017-08-15 21:17:19 C/C++开发

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

我正在为Stellaris LM3S1607芯片开发一个引导加载程序。 我正在使用Keil MicroVision4 C编译器。 想法是创建2个独立的固件,一个会更新另一个固件。 在firmware1中,我下载了firmware2文件,并将其写入0x3200的闪存。直到这里它正在工作。我也验证了数据正在写入闪存正确。 现在我有两个应用程序的闪存。一个是我的uip启动加载程序,而seoncd ..
发布时间:2017-08-15 19:54:23 HTML/CSS

如何确定嵌入式系统中的最大堆栈使用量?

当我给Keil编译器“-callgraph”选项 时,它静态地计算出我的确切的“最大堆栈使用率”。 今天它给了我一个“最大堆栈使用率= 284字节+未知(无堆栈大小的功能)”消息,以及“没有堆栈信息的函数”列表。 Nigel Jones表示递归在嵌入式系统中是一个非常糟糕的想法 (”计算你的堆栈大小“ 2009), 所以我一直小心不要在这段代码中做任何相互递归的函数。 另外 ..
发布时间:2017-08-15 19:53:28 HTML/CSS