9得票4回答
在Windows上原型制作和模拟嵌入式软件

我正在寻找关于虚拟原型、模拟和测试嵌入式C代码的工具和技术,可以在桌面Windows环境下进行。这些工具需要能够构建逼真的前置面板,包括按钮、LED和LCD显示器(分段和图形)。 我特别感兴趣的是使用纯C代码和原始Win32 API实现可能的低级方法,而不是使用MFC、.NET/C#、vxW...

8得票2回答
使用实时操作系统的项目单元测试

在我的下一个嵌入式系统项目中,我希望采用单元测试。虽然可能不是技术上的测试驱动开发,但至少我想要实现在前期进行单元测试,并具有全面的单元测试。 我正在使用IAR EWARM工具链。我考虑使用cmocka、Unity或Cunit。我倾向于使用µC/OS-III作为RTOS。 问题是:在RT...

8得票4回答
混合使用RTOS和循环执行的方法有意义吗?

在一个小型嵌入式系统项目中,我们有一些代码需要在线程中运行,因此我们决定在一个嵌入式RTOS(eCos)的基础上构建。以前,我们在main()函数中使用循环执行器来驱动任务,每个任务都是状态机实现的。对于某些任务,我们遇到了问题,需要将任务分解成许多细粒度的状态,从而使代码变得更加复杂。当切换...

8得票2回答
RTOS如何在中断中进行任务切换

假设有两个任务正在运行,TASK_A和TASK_B。当TASK_A在运行时发生中断,并需要切换到TASK_B。 在ISR内部,不应直接跳转到TASK_B,因为它仍处于ISR中,还没有返回(例如:RETI未执行)。如果按照正常方式从ISR返回,则会像往常一样返回到TASK_A的最后一个程序计数...

8得票1回答
软实时Linux调度

我有一个需要满足一些软实时需求的项目。我有两个进程(我编写的程序)进行数据采集。在任何情况下,我都需要不断读取并处理输入的数据。 第一个程序非常线程化,第二个程序使用了一个库,应该是经过了线程化处理,但我不知道底层正在发生什么。每个程序都由用户执行,并且(默认情况下)我看到每个程序的优先级为...

8得票3回答
为什么在这里禁用中断是必要的?

static void RadioReleaseSPI(void) { __disable_interrupt(); spiTxRxByteCount &= ~0x0100; __enable_interrupt(); } 我知道多个任务可能尝试使用SPI资...

8得票3回答
一个人形机器人适合哪种实时操作系统?

我们是一群学生,正在大学赞助的研究项目中开发一个中等大小的(约4.5英尺高)人形机器人。机器人应该能够执行的主要任务包括:移动(前进、后退、侧移)、奔跑、拾取物品。我们正在考虑使用硬实时操作系统来控制机器人。然而,由于我们在嵌入式系统或操作系统方面几乎没有背景知识,并且有许多可用选项,我们不确...

8得票3回答
抢占和上下文切换的区别

简单介绍一下, 我正在编写一个小型(可以说是微小的)RTOS内核,它应该是单体结构,大部分功能都在内核中。但是我找不到以下几个问题的太多信息,如果您能提供一些帮助,那将非常有益。除此之外,这实际上并不是某种大学项目,而是我自愿做的。 回答所有问题的更好选择是,如果您能为我推荐一个可用于AR...

7得票4回答
LWIP + RTOS - 如何避免netconn永久阻塞线程?

当调用LwIP的netconn_accept()或netconn_recv()函数时,如果我们正在使用RTOS,则它将阻塞线程并等待连接直到超时或永远,这取决于LWIP_SO_RCVTIME0的设置。超时持续时间等于SYS_ARCH_TIMEOUT。 在LwIP堆栈的核心包含部分中,SYS_...

7得票3回答
FreeRTOS和CMSIS-RTX的区别

FreeRTOS和CMSIS-RTOS有什么区别?有人能解释一下这两个RTOS的相似之处和不同之处吗?