网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
12月28日漏签0天
微电脑吧 关注:114贴子:1,938
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 5回复贴,共1页
<<返回微电脑吧
>0< 加载中...

Ai8052 DOS

  • 取消只看楼主
  • 收藏

  • 回复
  • 贴吧用户_GaE9SAb
  • 铁杆吧友
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
即将推出的 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的启动地址,操作系统就开始运行了。


  • 贴吧用户_GaE9SAb
  • 铁杆吧友
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
(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的方法加载到这个区域,然后运行程序对用户的程序和数据进行动态地加密/解密。


2025-12-28 13:47:36
广告
不感兴趣
开通SVIP免广告
  • 贴吧用户_GaE9SAb
  • 铁杆吧友
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
/*************P3.2下降沿中断**********************************/
void exint0() interrupt 0 //INT0中断入口
{
RstKey();
Run_On=!Run_On; //指示灯取反
for(;kcounter<5;) //按键循环5次
{
if(!INTPUT2) //按键低电平
{
LowVoltKey(); //按键低电平 计数器加一状态标志加一
}
else if(~!INTPUT2) //按键高电平
{
HighVoltKey(); //按键计数器加一 状态标志归零
}
}
if(kstatus>=3) /*按键状态标志大于等于3为有效值*/
{
if(!INTPUT1) //方向低电平
{
Count_1++; //加计数
}
else
{ //方向高电平
if(Count_1==0)
{
Count_1=RunTime_A-1; //
Count_A-=1; //
disa_Flag=1;
}
else
{
Count_1--; //减计数
disa_Flag=1;
}
}
}
}


  • 贴吧用户_GaE9SAb
  • 铁杆吧友
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
/*************P3.3下降沿中断**********************************/
void exint1() interrupt 2 //INT1中断入口
{
RstKey();
Run_On=!Run_On; //指示灯取反
for(;kcounter<5;) //按键循环5次
{
if(!INTPUT3) //按键低电平
{
LowVoltKey(); //按键低电平 计数器加一状态标志加一
}
else if(~!INTPUT3) //按键高电平
{
HighVoltKey(); //按键计数器加一 状态标志归零
}
}
if(kstatus>=3) /*按键状态标志大于等于3为有效值*/
{
if(!INTPUT0) //方向低电平
{
Count_2++; //加计数
}
else
{ //方向高电平
if(Count_2==0)
{
Count_2=RunTime_B-1; //
Count_B-=1; //
disb_Flag=1;
}
else
{
Count_2--; //减计数
disb_Flag=1;
}
}
}
}


  • 贴吧用户_GaE9SAb
  • 铁杆吧友
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=12056&extra=&page=1


  • 贴吧用户_GaE9SAb
  • 铁杆吧友
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
AI8051强制数据转换导致数据错误,引起MCU重启
使用浮点库,不要使用REMOVEUNUSED,不使用的代码注释
C251用double转换成浮点型


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 5回复贴,共1页
<<返回微电脑吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示