我希望能够为高端MSP430提供基本操作系统和基本文件系统MSP430F5438。我知道我可以使用类似FreeRTOS,IAR PowerPac或Micrium的内容来命名操作系统和文件系统的一些选项。但是我希望能够在后期加载小applet或线程,理想情况下从文件系统中获取这些额外的代码。我的目标是不必重新刷新整个设备以更改或实现嵌入式设备上的功能。不确定在哪里实现此功能,或者我是否需要切换到另一个处理器,如ARM。
答案 0 :(得分:3)
MSP430是一款出色的控制器,但如果您想运行操作系统并加载应用程序而不将其刻录到闪存,您应该切换到ARM(另一个具有许多基于ARM的微控制器的优秀平台)。
答案 1 :(得分:2)
我很确定每次要更改程序代码时,您都必须重新刷新MSP 430。当然,引导加载程序可以自行更新闪存,因此您只需要创建一个类似引导加载程序的程序,但只更新程序存储器的部分 - 即您希望放置小程序的位置。然后你必须知道你的applet代码所在闪存的每个区域的内存位置,以便你可以调用它。
在这些小程序中运行代码时也会遇到问题。如果只有一个内存位置,你想从那时运行它们,你可以编译它们。如果你想要几个可以从内存中的任何“applet空间”运行的不同applet,那么你可能会遇到麻烦,因为他们不知道他们从哪个地址开始。
当然,这些小程序中没有一个能够变得非常大。您的RTOS将占用多少空间?
答案 2 :(得分:2)
Msp430控制器由多个可提供所需功能的操作系统支持。其中一些提供OTA(无线节目)。一些提供(基于闪存)文件系统。但是,这通常意味着使用闪存来存储上传的程序。
以下是一对支持msp430的当前活动操作系统:
Contiki - “物联网”的操作系统。提供原始线程。
MansOS - 类似于unix的操作系统,支持msp430设备的线程和OTA。
答案 3 :(得分:1)
<强>闪存强>
在msp430上,您可以用512字节块擦除/重写板载闪存(用户闪存可以处理较小的块)。
所以你的bootloader / stable-RTOS可以用这个“应用程序”重新编程芯片
重定向中断有点棘手,但可以通过从“真实”向量表到应用程序向量表的重定向跳转来完成。
调用stable / RTOS
也可以从应用程序中调用稳定部分的函数,您可以为每个函数构建一个固定跳转表的稳定部分,因此应用程序知道如何调用该函数,即使您构建另一个稳定/ RTOS版本。 / p>
<强> RAM 强>
如果您只允许一个应用程序,这很容易
您必须为稳定的RTOS保留一些RAM,并且应用程序可以使用其余的RAM。
但是,如果要使用多个应用程序,解决放置变量的问题可能会非常棘手 要从应用程序保留RAM,我会优先选择动态分配,但即使这样,您也需要一个指向动态分配块的指针,这些指针是基于固定的,或者您的应用程序在堆栈上使用变量。
答案 4 :(得分:0)
有一些FRAM msp430部分可能值得一看。但它仍然没有很多记忆。