基于FAT12的BootLoader(STC8h8k64u)
nichengyan2024/04/26计算机电子学 IP:天津

这是专为STC8h8k64U写的bootloader,大小10K左右。通过它能实现以下两个独特的功能:

1:程序的动态加载,可以选择你想要APP加载并运行。

2:不依赖任何第三方软件的USB下载(进入下载模式后电脑会显示出来一个优盘,把编译好的HEX/BIN文件直接拖到优盘里,APP就下载好了)

3:HEX/BIN通吃,自带HEX转码烧录。因此连HEX2BIN程序也免了

硬件部分仅需OLED屏,psiFLASH和一些按键就好了

实现方式大家估计已经猜到了吧

首先,读FLASH和IAP肯定得有。通过IAP,把APP程序从spiFLASH搬到单片机FLASH里然后调转运行的基本功能就实现了。

其次,写入FLASH也得有。既然能连电脑模拟成U盘,那肯定有USBMSC。官方例程就有这个。到了这一步,电脑至少可以写FLASH了吧,可惜走文件系统了话写进去的东西单片机不能识别。

要是能用FAT解析一下FLASH里的内容就好了

(这里特别说明,Windows识别磁盘的文件FAT类型不是依靠DBR里的对应字节,它其实只看磁盘总容量,小于8M就只能格式化成FAT12了。鉴于大家使用数M的小FLASH居多,所以才打算写写FAT12)

需要一个阉割版FAT就行,只读,不用支持长名和目录,甚至时间也不用管他。让代码编译出来小小小才是首要目的。毕竟是作为BootLoader,太大了APP的运行空间就不够了

这样的FAT不太常见,支持FAT12的更少见,,,像ZNFAT,FATFS之类的限有方案在这都显得太冗杂了,所以这个轮子你不得不自己造了。

其实并不难写,因为Windows的格式化总是套路,所以你甚至连DBR也不用读就能掌握FAT12的大多核心参数,比如簇数,FAT表,目录表位置,簇偏移量之类的,甚至都可以当常量摆在代码里了。

依靠这个BOOTloader,电脑既能通过USBMSC往FLASH里写入APP,单片机又能借助FAT12解析出APP并加载。

这样就可以做很多很好玩的东西,比如一部能玩几十种游戏的游戏机,或者是自带全部例程的实验板,可编程小车(就跟EV3那样的,能选择并运行之前下载的程序)之类的而且以后再也不用USB转串口和STCISP了!程序下载只一个keil就ok啦







来自:计算机科学 / 计算机电子学
2
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
nichengyan 作者
26天9时前 IP:天津
931541


VID_20240426_154143.mp4 点击下载

好多好多的APP,都可以放在一个spiflash里供加载了。要是STC的实验箱或者学习版来一个这个,例程全家桶的程序文件都可以直接丢进去了。

大大拓展了物理空间,仗着超长寿命硬是把内部64KFLASH直接当RAM使了。。(什么时候STC能在内存里跑程序啊!!!)


引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
amo
26天6时前 IP:广东
931542

不要死磕STC51了,没啥意义。

随便换个有大容量RAM的Cortex-M芯片,程序可加载到RAM里执行,还有各种RTOS加持

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
上级专业
同级专业
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
支持的图片格式:jpg, jpeg, png
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}