杨为民 发表于 2024-10-11 14:29:40

Ai8052U,单片机进入DOS时代的首航者

即将推出的 Ai8052U,片内准备了4K字节的程序 SRAM,笔者认为这意味着STC单片机不再仅仅是传统意义上的单片机了,而是一款可以跨入DOS时代的单片计算机了。对于这不同以往的“4K字节的程序 SRAM”的用途,笔者认为可以用在以下3个方面,这些都是磁盘操作系统(DOS)的典型的功能。1.异种操作系统的引导程序:BOOT2.单用户多任务的内存覆盖:OVERLAY3.用户程序和数据的动态加密/解密。 一、异种操作系统的引导程序:BOOT(1)boot一词在计算机领域中源于“bootstrap”这一英文谚语,该谚语的意思是“拽着鞋带把自己拉起来”,象征着不可能完成的任务。计算机启动是一个矛盾的过程:必须先运行程序,然后计算机才能启动,但计算机不启动就无法运行程序。因此,早期的程序员把这个过程称为“拉鞋带”,久而久之简称为boot。80年代boot这个单词的中文被翻译为“自举”,我觉得很恰当。(2)IBM PC机的BOOT过程。当然计算机自举问题早就被程序员解决了,以IBM PC机为例:电脑加电后,先通过BIOS初始化硬件,然后从PC机启动硬盘的0磁道0扇区加载一扇区数据(MBR扇区,仅512字节)到00:7C00~00:7E00内存,然后将CPU跳转到00:7C00地址开始执行,至此CPU的控制权就移交到操作系统了。通常MBR扇区的程序是将整个操作系统的代码从某个扇区开始的连续扇区读到00:0000开始的连续地址空间中(新的中断矢量表00000H~003FFH也被建立了),然后跳转到OS的启动地址,操作系统就开始运行了。(3)对于只有单操作系统的PC机,只要将该OS的MBR扇区写到0号扇区就行了。对于安装有多个(WIN10/WINPE/LINUX)操作系统的PC机(在硬盘上有多个完整的OS映像),则BIOS提示你选择系统后,将该OS的BOOT扇区读到00:7C00~00:7E00内存,然后将CPU跳转到00:7C00地址开始执行,就引导了新系统了。(4)对于AI8052U单片机,单片机加电时,同样可以由STC-ISP弹出选择框或者选项按钮,让用户选择从哪里启动系统,如果选择从外接FLASH,就从外接FLASH的0扇区读512字节到80:0000H地址,然后跳转到该地址开始执行FLASH-BOOT程序,引导用户自己的OS。如果选择SD卡,就从外接SD卡的0扇区读512字节到80:0000H地址,然后跳转到该地址开始执行SD-BOOT程序,引导用户起自己的DOS。
二、单用户多任务的内存覆盖:OVERLAY(5)对于早期的计算机,其存储芯片无论是电子管、晶体管或者小规模集成电路构成,都是一种稀缺资源,如何在很小的内存中实现多个性质不同的任务,最常用的方法就是OVERLAY技术。这里的OVERLAY特指在程序内存中划出一块指定地址范围的内存,供用户动态地加载不同的程序来执行不同的任务。(6)通常一台计算机要调用各种程序完成各种工作,对于坐在电脑前的单个用户,有些工作不会同时进行的,比如你对一个源程序文件进行编辑和对这个源程序文件进行编译就不会同时进行,必须文件编辑好了再进行编译。因此对于单用户的这些不会同时进行的任务可以事先编译为从固定地址开始的OVERLAY机器码映像文件,需要时从磁盘上读到这个OVERLAY区域,然后跳到固定的地址开始执行新任务。(7)笔者曾经在PDP-11计算机上将文本程序编辑,源程序编译和在终端上显示和测量天文图像三个任务OVERLAY到程序空间的同一个16KB的区域,因为单个用户不会也不能在同一台终端上同时做两件事情的。(8)笔者曾经在PC机上的FORTH操作系统中,用2KB的RAM空间OVERLAY了一个全屏幕(25行80列)文本编辑任务和一个汇编语言编译器。(9)因此对于AI8052U单片机,用户自己完全可以将80:0000H地址开始的4KB程序RAM空间划为OVERLAY区域,需要的时候将OVERLAY程序从FALSH或者SD卡上读入该区域执行。重要说明:Keil的C51/C251都已经支持这种OVERLAY编程模式了。
三、用户程序和数据的动态加密/解密。(10)通常程序员可以用仿真和反编译的方法查看二进制机器码来进行破密,但是要是这些机器码被改变,这种方法就很难破密了。动态加密/解密方法最成功的案例是计算机病毒制造者用来对抗杀毒软件的方法。(11)对于AI8052U单片机,用户自己完全可以将80:0000H地址开始的4KB程序RAM空间划为加密/解密程序执行区域,将不同的加密/解密程序用OVERLAY的方法加载到这个区域,然后运行程序对用户的程序和数据进行动态地加密/解密。

soma 发表于 2024-10-11 16:43:51

是不是说STC单片机外挂flash跑DOS系统了

springvirus 发表于 2024-10-11 17:54:07

哇塞,灰常给力!!!

xxxevery 发表于 2024-10-11 20:14:23

必须支持一下

jackfangxq 发表于 2024-10-18 15:30:27

{:4_174:}

wwd 发表于 2024-10-18 22:23:30

{:4_174:}

huhuan 发表于 2024-10-19 00:32:02

把adc_vref+引脚单独引出来

lyldzxx 发表于 2024-10-19 08:16:16

这就意味着支持X86架构了吗?

xxkj2010 发表于 2024-10-19 10:42:11

不懂,但觉得是很厉害的样子

远行的鹿 发表于 2024-10-19 16:11:00

没有用过DOS系统,如果能够类比ARM,Linux等平台说明就更好了
页: [1] 2
查看完整版本: Ai8052U,单片机进入DOS时代的首航者