在单片机上运行app程序
现在原子的板子能在系统中运行bin文件,但是不能退出继续运行系统,能不能开发一种类似于nes游戏的格式的程序,这样在系统烧录好之后还能读取sd卡或者其他存储器上的程序来当做系统的一个任务来运行? 或者启动bin程序时启动优先级最高的任务定时检测一个退出按键,然后如果要运行bin文件,把bin文件放在一个优先级次高的任务里,系统其他任务由于bin文件没有提供系统延时就暂停了,如果最高级任务检测到按键,强行退出bin程序任务,在挂起退出键检测任务,系统正常运行希望大家分享下想法和思路,探讨下可行性
bootloader就可以 可以在多任务环境下,将所述BIN作为一个子任务,sd卡或者其他存储器上的程序作为子任务的一部分。至于按键的退出或进入,则由主任务来调度。 TEST 在单片机上运行app需要看架构如果是cortex_a系列应该没有问题,你这里说的app是不是指类似app的单独可以运行的程序,如果arm架构跑操作系统的话应该可以实现
可以考虑用bootloader试试 我觉得CPU不能直接读取SD卡的程序来执行,都是需要经接口读取的。
我建议需要运行bin文件时将其读取放到RAM中,然后切换到在RAM中运行程序。切换前设置一个外按键中断用于退出RAM运行模式,回到FLASH中运行。 当然可以了 就是相当于一个程序执行器呗 程序执行器也是个程序 用于执行其他程序 最好还能给所执行的程序提供各种库啊什么的 这不就有点像自己写操作系统了吗 你完全可以自己开发一个微型的操作系统 然后你在基于这个操作系统写软件就方便多啦 当然要是你只是要一个人简简单单的文件执行器 就挺简单的 一直守护进程 进程里面执行其他软件就可以了 然后返回呗 再等候看看有没有要被执行的程序 基本思路就是这样吧 在STM32上只运行一个可以加载二进制文件的bootloader,可以有一些简单的界面与fatfs
运行某个APP时,再去读取,并把运行指针给到这个程序,那么这个程序就会自己运行,当退出时,把运行指针再还给bootloader程序,再重新选择其他可执行程序。 我的思路是把一个按键设置成最高级别中断,Bin文件不能超过这个按键的中断,然后当按下这个案件的时候进入中断,把其他中断关闭了,一直等待直到再此按下此按钮才退出中断,同时把关闭的中断打开。