gpt4 book ai didi

c - 共享变量[RTOS]

转载 作者:行者123 更新时间:2023-11-30 15:18:16 25 4
gpt4 key购买 nike

简单背景:

在我的 MCU 上运行 freeRTOS。

我的项目中的功能之一是一个处理存储在外部存储器中的参数的库。

基本上在启动时,主函数调用从外部存储器读取所有参数并将它们存储在库内的静态变量(非全局)中的函数。

现在,我有几个正在运行的任务。某些任务调用参数库中的函数来读取/写入参数。

问题:当任务调用函数来读取参数时,它们最初尝试访问同一变量。正确的?

每个任务不是都创建自己的整个库的副本吗?

如果情况并非如此,那么我想信号量是实现我的目标的方法,从那里我会没事的。

上传了两张图片:第一张是我认为正确的方式,第二张是错误的。

Correct Faulty

ps。无法访问任何 Controller 。所以我在这里问:)

最佳答案

你的假设是正确的。您必须记住,您仍然在编译单个 C 程序。您的 MCU 操作系统是程序的一部分,不包含程序加载器或类似的东西,并且您只有一个 main
这实际上意味着您的程序将像任何正常的 C 程序一样运行,不会有任何重复的变量或隐藏的陷阱。唯一奇怪的一点是操作系统能够神奇地切换任务。

关于c - 共享变量[RTOS],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31587990/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com