STC AI8052U单片机特点


磁盘操作系统(DOS)的典型的功能。
1.异种操作系统的引导程序:BOOT
2.单用户多任务的内存覆盖:OVERLAY
3.用户程序和数据的动态加密/解密。
一、异种操作系统的引导程序: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的方法加载到这个区域,然后运行程序对用户的程序和数据进行动态地加密/解密。
Ai8052U,单片机进入DOS时代的首航者

https://www.stcaimcu.com/thread-11166-1-1.html

(出处: 国芯人工智能技术交流网站)

相关推荐
MAR-Sky7 小时前
keil5中数据的不同定义和单片机(以stc8为例)里的对应关系(idata,xdata,data,code)
单片机·嵌入式硬件
项目題供诗8 小时前
51单片机入门(八)
单片机·嵌入式硬件·51单片机
羽获飞9 小时前
从零开始学嵌入式之STM32——9.STM32的时钟系统
stm32·单片机·嵌入式硬件
来自晴朗的明天10 小时前
13、NMOS 电源防反接电路
单片机·嵌入式硬件·硬件工程
芯岭技术11 小时前
PY32MD310单片机:高性能、低功耗的32位电机控制微控制器
单片机·嵌入式硬件
小龙报12 小时前
【51单片机】深度解析 51 串口 UART:原理、配置、收发实现与工程化应用全总结
c语言·开发语言·c++·stm32·单片机·嵌入式硬件·51单片机
Lester_110120 小时前
STM32 高级定时器PWM互补输出模式--如果没有死区,突然关闭PWM有产生瞬间导通的可能吗
stm32·单片机·嵌入式硬件·嵌入式软件
小李独爱秋21 小时前
“bootmgr is compressed”错误:根源、笔记本与台式机差异化解决方案深度指南
运维·stm32·单片机·嵌入式硬件·文件系统·电脑故障
进击的小头1 天前
实战案例:51单片机低功耗场景下的简易滤波实现
c语言·单片机·算法·51单片机