找回密码
 立即注册
查看: 351|回复: 10

跟着何宾老师深入理解STC32系列单片机的内部架构和原理 | 建议立即送实验箱支持

[复制链接]
  • TA的每日心情
    开心
    5 小时前
  • 签到天数: 137 天

    [LV.7]常住居民III

    4

    主题

    45

    回帖

    316

    积分

    中级会员

    积分
    316
    发表于 2024-3-8 09:27:20 | 显示全部楼层 |阅读模式
    在学习STC8H单片机进行TFT实验时,由于其最大支持64K的程序存储空间,
    所以不能对240*320像素的屏幕进行一次全屏图像显示,
    了解到STC32G系列是全新的32位架构设计的兼容251指令集的现代MCU,
    不是采用的Intel251是已落伍的80251架构Intel内部数据总线是8位
    STC32G12K128内部数据总线是32位
    内部使用24位的地址总线,也就意味着最大能扩展到16MB的空间。
    并且在学习过程中也开始逐渐对单片机内部的工作原理产生兴趣,
    所以也希望能跟着何宾老师把32系列的内部工作原理学好,
    同时也能提高自己的汇编语言的能力。

    回复 送花

    使用道具 举报

  • TA的每日心情
    开心
    5 小时前
  • 签到天数: 137 天

    [LV.7]常住居民III

    4

    主题

    45

    回帖

    316

    积分

    中级会员

    积分
    316
     楼主| 发表于 2024-3-8 09:39:11 | 显示全部楼层
    第1-7集:
               前几集何宾老师根据51单片机内部使用的指令集架构(CISC)和其他类型的单片机(如ARM)的指令集架构进行的对比(RISC),引出了STC32系列单片机的整体内部结构。而且在KEIL反汇编的那一节也确实看到了STC32在程序运行时可以直接在程序存储器上操作,而不是将数据搬存到寄存器中。期待以后何宾老师对单片机内部的深入讲解能够彻底理解手册上对于程序运行状态相关的寄存器有更深入的理解。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    5 小时前
  • 签到天数: 137 天

    [LV.7]常住居民III

    4

    主题

    45

    回帖

    316

    积分

    中级会员

    积分
    316
     楼主| 发表于 2024-3-8 14:02:41 | 显示全部楼层
    本帖最后由 遥指杏花村 于 2024-3-10 07:24 编辑

    第八集:何宾老师讲解了KEIL软件编译链接生成可执行代码文件的过程。
              首先编译器会对每个C文件代码进行编译,生成目标文件。目标文件中可在KEIL的Listing选项中勾选选择是否包含相关信息(如头文件,反汇编代码等);根据工程中所有C文件对应的目标文件,链接器会进行对代码存储空间的分配,生成一个工程map文件,map文件包含了各程序分布在存储器中的绝对位置。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    5 小时前
  • 签到天数: 137 天

    [LV.7]常住居民III

    4

    主题

    45

    回帖

    316

    积分

    中级会员

    积分
    316
     楼主| 发表于 2024-3-8 16:09:20 | 显示全部楼层
    本帖最后由 遥指杏花村 于 2024-3-10 07:20 编辑

    第9-10集:何宾老师演示了STC32系列单片机USB硬件下载和USB硬件仿真的流程,接下来讲述了不同进制下的数值转换。特别是在负数的表示方法中讲解了符号幅度表示法,符号幅度表示法与当前应用的二进制补码相比的应用缺陷,同时结合在KEIL调试下负数的运算过程,理解了利用补码表示负数的巧妙之处。另外在讲述浮点数运算时,也确实看到了CPU在进行浮点数运算时占用的大量预算过程,也确实理解了STC推出硬件浮点运算单元的目的!
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    5 小时前
  • 签到天数: 137 天

    [LV.7]常住居民III

    4

    主题

    45

    回帖

    316

    积分

    中级会员

    积分
    316
     楼主| 发表于 2024-3-9 11:54:27 | 显示全部楼层
    第十一集:何宾老师在介绍STC32系列单片机之前,先讲述了传统8051的架构,因为STC32是MCS-251单片机对MCS-51单片机的扩展和发展。
    8051单片机称为8位机是因为其数据总线宽度为8位,寄存器也为8位,只有DPTR程序计数器为16位,所以8051架构的单片机最高只能支持到64K的存储空间。
    何滨老师讲述了在8051架构下CPU、存储器、特殊功能寄存器、和外围电路之间的关系,总体讲述了存储器中的程序指令是如何在内部执行的,同时也介绍了在取指、译码、执行阶段的3级流水线结构。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    5 小时前
  • 签到天数: 137 天

    [LV.7]常住居民III

    4

    主题

    45

    回帖

    316

    积分

    中级会员

    积分
    316
     楼主| 发表于 2024-3-9 16:45:42 | 显示全部楼层
    第十二集:何宾老师在讲存储器前,先讲解了大端和小端的字节存储顺序。大端模式下,低地址存放高字节,高地址存放低字节;小端模式下,高地址存放高字节,低地址存放高字节。而8051单片机在堆栈时采用小端模式,而在保存其他数据及浮点数时采用大端模式。
    随后何宾老师讲解了FLASH程序存储器和数据存储器的特点,其中STC8和STC32系列单片机还提供了大容量的数据FLASH存储器,实现电可擦除的功能,相较于传统8051,不用再额外增加EEPROM设备。(数据存储器的擦除是按扇区来执行的,一个扇区为512个字节)。
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    552

    主题

    9541

    回帖

    1万

    积分

    管理员

    积分
    14056
    发表于 2024-3-9 21:29:38 | 显示全部楼层

    STC32内部是 32位数据总线,是 真32位机

    截图202403092128083980.jpg

    截图202403092128371943.jpg

    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    552

    主题

    9541

    回帖

    1万

    积分

    管理员

    积分
    14056
    发表于 2024-3-9 21:32:03 | 显示全部楼层
    Intel 为了省成本,Intel80251, 内部总线是8位的根本区别 !
    STC32内部是 32位数据总线,是 真32位机


    截图202403092130105484.jpg

    截图202403092130341834.jpg





    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    552

    主题

    9541

    回帖

    1万

    积分

    管理员

    积分
    14056
    发表于 2024-3-9 21:34:09 | 显示全部楼层
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    5 小时前
  • 签到天数: 137 天

    [LV.7]常住居民III

    4

    主题

    45

    回帖

    316

    积分

    中级会员

    积分
    316
     楼主| 发表于 2024-3-11 15:15:35 | 显示全部楼层
    第13-14集:何宾老师讲解了STC32G系列采用MCS-251 ISA,内部采用24位的地址总线,其中高八位表示访问的段空间,低16位则定位这一64K段空间的具体位置。另外姚总也在最后补充当前STC32G12K128系列为了兼容编译器,程序复位从FF:0000H执行,所以编写程序时单个(C或ASM)文件不能超过64K,但是后续的升级产品STC32G96K256系列可以改为改为从80:0000处执行。
    STC32G系列相较于传统8051系列,将传统8051系列下四组分时复用的四组寄存器(用PSW寄存器的两个状态字控制)升级为可同时访问32个八位寄存器R0-R31,另外32个寄存器可组合成16个单字(16位)寄存器,8个双字(32位)寄存器。何宾老师在KEIL软件中进行汇编调试中也确实看到了32位\16位寄存器的组合。
    感谢STC的补充,INTEL的8位数据总线还是差点意思,因为寄存器都已经能组合成32位的了,数据总线还是停留在8位,对于32位的数据还得分四次执行,所以个人感觉INTEL的8位数据总线属于是高不成低不就了。
    回复 支持 反对 送花

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-5-20 14:14 , Processed in 0.074560 second(s), 67 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表