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