问题标签 [keil]

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.

0 投票
0 回答
459 浏览

c - STM32F4xx - 用 C 写入内存

我在我的 ARM STM32F407VG 上写入内存时遇到问题。我正在使用 Keil 对其进行编程并将其用于嵌入式系统类。我们刚从 ASSEMBLY 转到 C,我仍然熟悉 CMSIS。

赋值本身相当简单:生成 5000 个随机数并将它们放入一个数组中。然后测试这个数组的素数并将它们放在一个数组中。任务本身并不算太糟糕,但我在外围设备方面遇到了麻烦。具体来说,虽然我在编译过程中对 RNG 没有任何问题,但在写入内存时确实遇到了很多问题。

在 ASSEMBLY 中,我们能够直接写入内存,而我们在 C 语言中对 ARM 进行编程的介绍中的幻灯片看起来很相似。它让你声明一个指向你初始化为 FLASH 开头的地址的指针 (0x20000000)。然后,您只需为该地址分配一个数字并存储它。实际上这并没有成功,所以我怀疑我需要配置闪存外围设备。后者有大量我们没有涵盖的命令,当我尝试最基本的命令时,我不断收到大量错误。

我的问题是:我需要配置闪存外围设备还是可以通过声明一个指针并写入它来写入内存?如果不是,我在下面的代码中的 FLASH 外设命令有什么问题,我在哪里可以找到如何配置它的示例?FLASH上的帮助文件很大,我不知道什么是必要的,什么不是。

非常感谢任何帮助。

谢谢,尤西夫

0 投票
3 回答
1875 浏览

arm - Keil IDE 秒表在调试模式下不工作

和许多其他朋友一样,我使用 ST F4-Discovery 板已经有一段时间了。我们都有同样的问题。我们使用的是 Keil IDE(使用了从 4.3 到 4.7 的不同版本)。每当我们使用断点和秒表计时,它在模拟模式下都能完美运行。但是,当我们在板上调试并运行相同的代码时,秒表永远不会报告正确的时间。它实际上是随机的。有谁知道问题是什么?

谢谢

0 投票
2 回答
4857 浏览

c - 头文件错误:不允许不完整的类型

这是我的头文件:

我在结构中的行上得到错误Args args,我不知道为什么。

0 投票
1 回答
1791 浏览

debugging - 如何在 LPT 上使用 Keil + H-JTAG 调试 LPC1768

我有一个基于 LPC1768 的板。和一个H-Jtag调试器(基于 LPT)。我能够使用 H-JTAG软件检测/擦除/闪存 HEX 文件到 LPC1768 。

我想在 keil uVision 中调试我的电路板。当我进入调试模式时,keil 给出了“USB 连接错误”,随后没有发生代码更新/调试。我认为它不应该在寻找 USB 连接,但它应该连接到在后台运行的 H-Jtag 服务器,但它没有。我找不到可以配置来告诉 keil 查找的设置/连接到 H-JTAG 服务器。

任何做过这件事的人请指出我正确的方向?

0 投票
1 回答
292 浏览

8051 - p89v664 的 printf 打印来自实际微控制器的垃圾字符

我正在尝试使用以下代码从 p89v664 在串行终端上打印消息,

上面的程序工作正常,直到该程序中的 printf 函数定义没有被注释。如果上面程序中的 printf 函数被注释为使用标准库中的 printf ,那么垃圾字符将打印在串行控制台上。(我用腻子)。我使用了 Keil uVision V4.14.4.0 编译器。

有什么遗漏吗?我不明白这个程序有什么问题。

0 投票
1 回答
493 浏览

c++ - c 风格的类型转换和 operator()

问题变了!

我使用一种简单的方法将我的枚举隐藏在本地命名空间中——在结构中进行枚举。大致是这样的:

operator T () 是对隐式类型转换的保护。然后我尝试用 gcc 和 keil 编译这段代码:

gcc 编译它没有错误(这是我所期望的),但 Keil 给了我一个错误:“无效的类型转换。运算符 () 无法访问”。

所以我的问题是:哪个编译器是正确的?

我知道 c++11 枚举类,但现在 Keil 不支持它

0 投票
2 回答
2222 浏览

comments - 在预处理器 i 文件中保留注释

我们希望使用预处理器输出文件(.ifile)以供进一步使用,尤其是注释。
为此,我们使用/PREPRINT(或/PP)命令行开关。
问题是 KEIL 编译器 (C166) 删除了所有注释。

问:是否可以在.i文件中保留评论?

附加研究:
Microsoft 编译器使用/P命令行开关执行此操作。
但他们必须/C保留评论

0 投票
1 回答
1806 浏览

arm - 如何为多个组合二进制文件设置构建

在使用嵌入式系统时,有时需要为处理器加载多个独立编译和链接的二进制文件;在我目前的项目中,一个处理器应该有它自己的代码图像和一个它应该传输到与之通信的远程设备的代码图像。如果我使用十六进制或二进制文件对芯片进行编程,我可以使用批处理文件来简单地连接单独构建和链接文件的内容(可能使用“FIND /V”来删除诸如英特尔文件结尾记录之类的内容) )。然而,当使用 Keil 调试器对设备进行编程时,芯片不是从此类文件中加载,而是从 .AXF 文件中加载。

如果在我测试主设备(附加了调试器的设备)的代码时,应该发送到远程设备的代码图像会更改很多次,那么设置构建过程最有用的方法可能是什么?我的倾向是编写一个实用程序来将远程处理器代码的二进制文件转换为包含const unsigned char REMOTE_CPU_DATA[] = {...}';并配置链接器以将该文件的 const 部分定位在适当的地址,或者一个包含绝对数据指令的 ASM 文件,然后让该实用程序作为主代码构建过程的一部分运行,但将二进制数据转换为文本格式包含在一个项目中似乎很恶心。另外,最好找到一个库存实用程序来进行这种转换,或者用 C# 或 VB.NET 编写一个专用的工具(我可以使用任何一种语言,但主要将后者用于 PC 开发)?我希望 ASM 输出特定于 Keil,而 C 输出与开发系统无关,但是使用 C 而不是 ASM 需要在链接器规范中添加一行来设置远程 CPU 数据的绝对地址 [地址远程 CPU 数据的数量是固定的,以允许它在程序控制下加载,

0 投票
2 回答
1571 浏览

c - Keil uVision(C51编译器),一元运算符“!”是什么意思?

我正在使用 Keil uVision 4 进行编程。

我有一些这样的代码:

我可以控制`P3^3通用输入引脚,因为在这个引脚上我有一个 PIR(脉冲红外传感器)。它在闪烁时给我 1 在那条线上,在它睡觉时给我 0。

P3^3被上拉到 时1,输出为(如预期的那样)10101010101010..

当它仍然为0时,输出为(如预期的那样)0000000000000..

我得到的行为是我上面描述的,考虑到这sbit X是由 PIR 设置/取消设置的。

那么问题来了,!Keil C51编译器中的操作符是什么意思呢?

0 投票
2 回答
380 浏览

c - 当我们在 Cortex M3 上耗尽内存时会发生什么

我正在用 C 为 ARM 处理器开发一个程序,在我的程序中,当我的内存使用量增加时(当程序流经其中定义了数组的函数时),程序的行为出乎意料,我认为某些变量被覆盖,即它耗尽内存它从头开始分配内存。

现在我的问题是:覆盖旧变量是否是内存不足时的行为?如果是,我该如何避免这种情况?

我正在使用 Keil uVision 和 lpc 1768。

感谢您的帮助。