VID_20240426_154143.mp4 点击下载
好多好多的APP,都可以放在一个spiflash里供加载了。要是STC的实验箱或者学习版来一个这个,例程全家桶的程序文件都可以直接丢进去了。
大大拓展了物理空间,仗着超长寿命硬是把内部64KFLASH直接当RAM使了。。(什么时候STC能在内存里跑程序啊!!!)
这是专为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啦
VID_20240426_154143.mp4 点击下载
好多好多的APP,都可以放在一个spiflash里供加载了。要是STC的实验箱或者学习版来一个这个,例程全家桶的程序文件都可以直接丢进去了。
大大拓展了物理空间,仗着超长寿命硬是把内部64KFLASH直接当RAM使了。。(什么时候STC能在内存里跑程序啊!!!)
时段 | 个数 |
---|---|
{{f.startingTime}}点 - {{f.endTime}}点 | {{f.fileCount}} |
200字以内,仅用于支线交流,主线讨论请采用回复功能。