问题标签 [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 投票
1 回答
6690 浏览

c - 如何在ARM7中原子地比较和交换?

我想修改一个由 RTOS 中不同任务和 IRQ 上下文共享的全局变量。因此我需要原子地修改这个变量。在我当前的实现中,我一直在使用 enable_irq/disable_irq 函数来原子地修改语句。

__sync_bool_compare_and_swap在 GCC文档中找到了该函数作为原子操作的助手。

我当前的工具链是 KEIL MDK,我想切换到如下所示的方法,

如何__sync_bool_compare_and_swap在 ARMv4 命令集中编写函数(作为内联汇编)?

0 投票
2 回答
1230 浏览

c++ - 如何抑制第三方源文件中的警告?

我熟悉 GCC 和 Keil 的警告抑制编译指示(它们不同,但用法几乎相同)。对于第三方标头,我可以执行以下操作:

但是我怎样才能抑制来自第三方来源的警告呢?Eclipse+GCC 和 Keil 都会生成它们。我想出的唯一解决方案是制作 whapper .c 文件,其中将包含其他 .c 文件,这似乎是非常肮脏的把戏。

还有其他解决方案吗?

0 投票
2 回答
102 浏览

compiler-construction - 将内部版本号添加到软件

有没有办法在代码中添加内部版本号?(我的意思是编译器/ide/其他本身在编译时添加/维护代码中的内部版本号)?我想显示这个内部版本号以供查看(因此代码的可追溯性)。

有谁知道keil软件中怎么用tortoise svn实现的?

0 投票
3 回答
1027 浏览

assembly - 在正确地址的数据区中找不到定义的字符串

我在 ARM 程序集中为皮质定义了两个段 - M4,一个是代码(只读),另一个是数据(读写)。只读存储器定义为从地址 0x08000000 开始,RW 存储器从 0x20000000 开始。每个段都在其自己的程序集文件中定义,并且标签名称被正确导出/导入。

数据段写为:

在代码中,我使用 LDR R0, =myString 加载字符串的地址

R0 正确地将地址 0x20000000 加载到 R0 中。但是当使用 Keil uVision IDE 内存视图时,该地址处的内存是空的。相反,我在只读区域中的代码后面找到了字符串。那么你能告诉我如何将字符串放在内存中的正确位置吗?

谢谢

0 投票
1 回答
153 浏览

c - 通过微控制器进行乐器自动化教学

该项目的前提是:

例如,会有预先录制的吉他音轨。学生将在他的吉他上演奏相同的曲目。我需要比较这两种声音,看看学生弹得好不好。我将首先使用 STM32 微控制器和 Keil uVision 软件进行仿真(用 C 语言编程)。

我知道我将使用使用 DMA 的 ADC,我假设我会快速傅里叶变换波信号,然后以某种方式比较两个频率响应。另外,节奏会不会有问题?我的意思是,每个音符都会精确到毫秒然后进行比较是不合逻辑的

我见过一些方法,如隐马尔可夫模型或 Goertzel 算法,但我不太确定它们做了什么,以及它们是否对项目来说是最优的和容易的。所以我的问题是:是否有最适合的特定算法以及我将如何在我的代码中实现它(因为我还没有真正开始研究代码,到目前为止主要是理论阅读)。

编辑:我昨天发表了类似的帖子,但我的前提太复杂而无法解决,所以我在一个新的前提下发布,更容易完成。我想不要在第一个线程上问,因为它会混淆两个不同的问题。

0 投票
3 回答
11265 浏览

c++ - 将 uint8_t 与数字进行比较

也许我没有正确理解 C++ 或者它是编译器的错误?

doNothing 没有被调用(如预期的那样),因为 (ab) 的结果在比较操作中被隐式转换为第二个操作数的类型。对于数字,它是带符号的 int。好的。

doNothing 仍然没有被调用,但现在我不明白它的原因!我已经明确地将数字转换为 uint8!

现在 doNothing 终于被调用了,但又是为什么?两个uint8的减法如何返回一个int?

编译器是用于 ARM Cortex M3 的 uVision ARMCC。

0 投票
2 回答
2417 浏览

c - 从另一个文件访问内联函数

我目前正在使用 keil 编译器在 C 中编码。我面临一个问题,我必须使用内联函数(在我的情况下性能很重要,所以我必须使用它)并且我有一个包含内联函数的文件。这个内联函数在头文件中声明,我尝试从另一个包含头文件的文件中访问。我总是得到:函数调用时未定义的符号错误......

这是说明我的问题的示例:

文件:test.h

文件:test.c

文件:main.c

==> 链接错误:未定义的符号 my_function

我可以改用宏,但是您知道解决我的问题的其他替代方法吗?

0 投票
1 回答
3371 浏览

c - 函数声明的宏不起作用

我想使用宏来轻松更改函数声明,这就是我现在所拥有的:

当我调用 MYDECLARATION(my_thread); 我收到一个错误:

标识符列表参数只能在函数定义中使用。

我尝试像这样使用##:

但我很确定我会得到 :voidmythread (void)在我的代码中。你知道怎么做吗?

如果你知道一些关于宏的很好的教程,我也很感兴趣。


回应位掩码评论:

我正在使用 KEIL 编译器,然后我的线程工作如下:

我的电话:

我的定义:

新测试:

这是有效的......所以我想这是在一个不起作用的函数名中使用宏参数的事实......

0 投票
1 回答
81 浏览

c - Keil u vision4的乱码

我想编写一个程序来对分数进行排名,这是我的尝试:

但输出是:
请输入学生人数:
123202033
分数:
65
请输入学生人数:
125425152
分数:
56
请输入学生人数:
102323122
分数:
98
请输入学生人数:
102325244
分数:
75
请输入学生人数:
210232322
分数:
45
rank1 21426 98
rank2 23548 75
rank3 -5647 65
rank4 -10752 56
rank5 -7166 45
鼢<br> Dt
?? ?0??????"屪?@?@???<br>9"x噈惄uv0??~"?

0 投票
1 回答
3903 浏览

initialization - 如何防止 MDK-ARM (Keil) 初始化变量?

这是针对 ADuC ARM (ARM7TDMI) 芯片的……我已经完成了:

并检查了 IRAM2 的 NoInit 复选框......它在启动时仍然被初始化为 0(我不希望这个初始化——我想看看当看门狗咬我时它在做什么)。

我在另一个问题中看到了关于使用的另一篇文章__at__,但我真的应该这样做吗(我不在乎编译器将它放在哪里,只要它不理会它。OTOH,我在闪存中有一个部分使用该__at__位,因为我需要在操作期间擦除该页面)?