问题标签 [freertos]

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 回答
4481 浏览

c++ - Why Are Vtables Not Being Implemented Correctly On Embedded Platform?

I am developing code for an embedded system (specifically, the PSoC 5, using PSoC Creator), and writing in C++.

While I've overcome most hurdles with using C++ , first off compiling in C++ using the compiler flag -x c++, defining the new and delete operators, making sure exceptions aren't thrown with the compiler flag -fno-exception, I've come to a brick wall when it comes to using virtual functions.

If I try and declare a virtual function, the compiler gives me the error undefined reference to "vtable for __cxxabiv1::__class_type_info". The only way to get around this is to use the compiler flag -fno-rtti, which prevents the error and makes it compile successfully. However, if I do that, the embedded program crashes when trying to run the overloaded virtual function, and I'm thinking this is because the vtable does not exist.

I don't see why you shouldn't be able to implement vtables on an embedded platform, since all it is a extra space in memory before or after member objects (depending on the exact compiler).

The reason I am trying to use virtual functions is because I am wanting to use FreeRTOS with C++, and other people have implemented this by using virtual functions (see http://www.freertos.org/FreeRTOS_Support_Forum_Archive/July_2010/freertos_Is_it_possible_create_freertos_task_in_c_3778071.html for the discussion, and https://github.com/yuriykulikov/Event-driven_Framework_for_Embedded_Systems for a well written embedded C++ FreeRTOS framework)

0 投票
2 回答
7908 浏览

eclipse - Eclipse:无法运行程序“cs-make”:启动失败

在过去的一周里,我一直在寻找一个免费的 STM32F1xx 开发环境,它由 FreeRTOS 支持。而且还没有成功:(。

现在我发现了这个: http: //www.stf12.org/developers/ODeV.html

它是用于 STM32 编译和调试的 Eclipse 配置,还有一个 FreeRTOS 演示。完美的!

于是我下载了一个预配置的eclipse版本,并尝试编译一个demo项目得到这个错误:

沉闷。请帮忙,我在配置 IDE、编译器和链接器方面非常糟糕,所以这必须对新手友好:)

0 投票
4 回答
19472 浏览

eclipse - 使用 OpenOCD 调试 STM32F1xx 探索板(ST-Link)

我在让 OpenOCD 与我的 STM32F100RB 探索板(它使用 ST-Link)进行通信时遇到了一些问题。

我不习惯使用开源工具,因此我从来没有遇到过编程和调试嵌入式平台的问题。在过去的一周里,我遇到的问题比我想象的要多,只是试图让 IDE + FreeRTOS + Debugging 启动并运行。

我现在决定为我的嵌入式应用程序使用 Eclipse + Sourcery G++ Lite + OpenOCD。我编译了一个小应用程序(好的开始......),现在正在尝试使用 OpenOCD 进行编程和调试。当我这样做时,我收到以下错误:

我不知道从哪里开始,请帮助。另外:如果有人有更好的 STM32 开源/免费 IDE,它“支持”FreeRTOS(即有可用的演示/模板),我会很高兴听到它 :)

编辑:

好的,我认为我在第一次尝试时使用了错误的配置文件。现在我得到了这个:

0 投票
1 回答
778 浏览

memory - 为 FreeRTOS 嵌入式系统选择合适的 MCU

我有一个项目正在进行,我打算将 STM32 MCU 与一堆传感器(加速度计、陀螺仪等)连接起来,对下载的传感器数据进行一些数学运算,并为 6 个 PWM 生成适当的输出。除此之外,我还有一个有源无线通信模块,也许还有一个小液晶屏(没什么花哨的)。加上一些小的附加功能。

我打算使用 FreeRTOS 来控制系统,但我无法确定这是否是矫枉过正?我应该只使用小型合作调度程序吗?

我已经在我的 STM32F100RB 上启动并运行了一个 FreeRTOS 系统,它具有 8kB RAM 和 128kB 闪存,但我无法确定对于运行 FreeRTOS 的系统来说这是否足够内存?..

0 投票
1 回答
3268 浏览

embedded - LPC 深度睡眠模式示例

首先澄清一下,我是嵌入式技术的新手。我正在使用 NXP LPC1769 板。几天来,我一直在寻找有关如何使用看门狗从深度睡眠模式中唤醒的示例,但找不到。

我从 UM10360 阅读了关于看门狗定时器的第 21.1 章以及关于电源控制的第 4.8 章。

对于看门狗,我尝试写这个:

虽然我WDT_IRQn在无限循环中停止了董事会进入。

要将板设置为深度睡眠模式,我尝试:

0 投票
2 回答
2836 浏览

c - FreeRTOS - STM32F4 上的堆栈损坏

我目前遇到问题,我认为在 STM32F407 目标上运行 FreeRTOS 时某些配置错误的堆栈损坏。

用 gcc 查看了 STM32F4 上的 FreeRTOS 堆栈损坏,但没有得到任何帮助。

应用程序运行两个任务并依赖于一个 CAN 中断。工作流程如下:

  1. 两个任务 network_task 和 app_task 与两个队列 raw_msg_queue 和 app_msg_queue 一起创建。CAN 中断也已设置。
  2. network_task 具有最高优先级,并开始无限期地等待 raw_msg_queue。
  3. app_task 是下一个并开始在 app_msg_queue 上等待。
  4. 然后 CAN 中断因外部事件而触发,将 CAN 消息添加到 raw_msg_queue。
  5. network_task 唤醒,处理消息,将处理后的消息添加到 app_msg_queue,然后继续等待 raw_msg_queue。
  6. app_task 唤醒,我遇到了一个硬故障。

问题是,由于最终用户的便利性和可移植性,我已经分两步包装了 app_task 对 xQueueReceive 的调用。app_task总的函数链是它调用network_receive(..) -> os_queue_receive(..) -> xQueueReceive(..)。这很好用,但是当它从 xQueueReceive(..) 返回时,它只能在返回到看似随机的内存位置之前返回到 os_queue_receive(..) 并且我得到一个硬故障。

堆栈大小应该足够,并且两者都设置为 2048,所有大型数据结构都作为指针传递。

我在两个 STM32F407 上运行我的代码。FreeRTOS 的版本为 7.4.2,是撰写本文时的最新版本。

我真的希望有人可以在这里帮助我!

0 投票
1 回答
285 浏览

c - 编译器不处理 freertos #define 代码

我只是想将演示代码加载到我的 RX62N 中,但代码无法编译。我得到了很多和这个完全一样的错误。

错误 [Pe125]: 预期 "(" C:\FreeRTOSV7.4.2\FreeRTOS\Source\queue.c 263

这里有哪些链接

并且是这样定义的

知道为什么会发生这种情况吗?

0 投票
1 回答
168 浏览

embed - 是否类似于 LPC1769/FreeRTOS 中的 shiftOut?

我正在尝试使用 FreeRTOS 从 LPC1769 板的视差 SHT11 模块中读取数据。

我找到了这个例子 http://wiring.org.co/learning/basics/humiditytemperaturesht11.html

我正在尝试移植到 LPC1769

是否有类似于 shitOut 功能的东西?

我对 mbed 的了解很少,我应该在哪个 pin 上写?

我读过关于 LPC_GPIOX->FIOPIN 存储当前引脚值的信息,在这里吗?

0 投票
1 回答
1493 浏览

c - 在 FreeRTOS 中实现线程间通信的最佳方式?- 检查 lwIP 电缆的状态

我想在开启 DHCP 和 TCP 连接的情况下制作 lwip 电缆开/关防弹。两种解决方案都可以,但我不知道哪个更明智和正确。(我害怕错误的上下文函数调用)

  • 第一个解决方案:

我打电话:

然后在那之后:

所以有2个线程,主lwIP线程和hc_task线程。hc_task是:

hc_send与某个页面建立 TCP 连接以下载它。

然后我有一个间隔为 2 秒的轮询计时器,它检查 PHY 并读取电缆状态:

现在下次当电缆接通时,我会打电话:

我猜在定时器中断中调用这些函数是正确的。

  • 第二种解决方案:

第二种方法是定时器中断向主lwip线程发送消息:

定时器中断向主 lwip 线程发送一条消息以调用:

或者:

我有一个全局变量来存储电缆状态(从那个定时器中断中保存),我在主lwip线程中检查它以调用正确的函数(链接向上或向下)。

所以我问哪种解决方案是更好/正确的方法:在定时器中断调用链接向下或向上(这些是 lwip 函数)或定时器中断向主 lwIP 线程发送消息?

我的配置:微处理器 LPC1768 - LAN8720 PHY - FreeRTOS 7.4 - lwip 1.4.1 - 包括 DHCP - 包括 TCP/IP

0 投票
1 回答
1976 浏览

embedded - 永远不要进入 vApplicationIdleHook

我正在用 LPC1769 和 FreeRTOS 编写应用程序。有两个任务,每个任务都做一些事情并在一定时间内调用 vTaskDelay。

我有兴趣在任务延迟时加入睡眠模式......

在 FreeRTOSConfig.h 我已经设置

在 vApplicationIdleHook( 无效 )

但是应用程序永远不会进入vApplicationIdleHook ...我已经尝试输入代码来切换led并且什么都没有...

怎么了 ?在 FreRTOS 文档中,我能看到的唯一必要条件是设置 configUSE_IDLE_HOOK....

谢谢!...对不起我的英语