anywill 发表于 2017-12-21 18:26:25

好像是多任务挂起
tinyLinux可以
但是flash要10MB空闲空间

maxtch 发表于 2017-12-21 19:04:12

这个当然可以。你可以参考 DOS 是如何实现程序装载和卸载的,不过在 STM32 下由于程序空间足够,可以不用考虑内核的装载和卸载。另外,有必要要把 NVIC、SCB->VTOR、中断向量表和内核内存保护起来,避免用户程序造次把系统破坏了。

slotg 发表于 2017-12-21 19:40:57

基本上系统应该是要跑一个 Kernel 内核程序,用来管理系统的资源分配,所要运行的文件都只是 Kernel 的一个线程。
另一种比较简单的方式适合单片机系统的就是系统开机后运行一个选单程式,由选单程序选择要运行那一个 BIN 文件,假如要改变运行文件就按下 RESET 键暖启动。

the_newbie 发表于 2017-12-21 19:53:46

跑系统加触摸屏加内存卡感觉想法挺好的,但是暂时还不知道如何实现。静等大神、、

sylar.z 发表于 2017-12-21 19:56:18

可以把上述的bin文件做成一个特定的流程表格式应用文件。主程序中有一套完整的解析这套流程表的程序,这样就是一个读取应用文件,主程序执行的过程。可以在sd卡中存储多个应用文件,使用这种模式,就实现了游戏机的读取游戏卡中游戏的方式。

nyszx 发表于 2017-12-21 19:56:20

估计可以参考java的运行方式,在stm32上跑一个特殊的虚拟机,执行可动态加载的程序。

nyszx 发表于 2017-12-21 20:05:59

搜索了一下发现老早就有这样的想法了:http://www.openedv.com/posts/list/11846.
在RAM中执行Bin文件,但是要保存Flash中程序的运行状态,堆栈,PC指针等等执行完Bin后恢复现场,实现实时系统中的任务调度原理。

yangjiaxu 发表于 2017-12-21 20:06:49

应该不能吧,没试过,可以加中断么?应该可以加中断的

xnmc2013 发表于 2017-12-21 20:11:02

我是觉得单片机的功能是简单可靠,如果需要比较复杂的任务,可以选择类似手机的芯片来运行。单片机能够做到稳定可靠,简单开发,就是最棒了~~~~~~

nyszx 发表于 2017-12-21 20:17:38

RT-Thread可以创建动态线程。应该能实现楼主的想法
页: 1 [2] 3 4
查看完整版本: 在单片机上运行app程序