现在位置: 首页 > techbulo发表的所有文章
  • 03月
  • 07日
技术文章 ⁄ 共 1519字 STM32的IO口的8种模式及配置已关闭评论 ⁄ 阅读 2,320 次
GPIO口的端口位的基本结构 1 STM32的输入输出管脚有下面8种可能的配置:(4输入+2输出+2复用输出) ① 浮空输入_IN_FLOATING ② 带上拉输入_IPU ③ 带下拉输入_IPD ④ 模拟输入_AIN ⑤ 开漏输出_OUT_OD ⑥ 推挽输出_OUT_PP ⑦ 复用功能的推挽输出_AF_PP ⑧ 复用功能的开漏输出_AF_OD 1.1 I/O口的输出模式下,有3种输出速度可选(2MHz、10MHz和50MHz),这个速度是指I/O口驱动电路的响应速度而不是输出信号的速度,输出信号的速度与程序有关(芯片内部在I/O口 的输出部分安排了多个响应速度不同的输出驱动电路,用户可以根据自己的需要选择合适的......
阅读全文
  • 03月
  • 06日
操作系统 ⁄ 共 6773字 《自己动手写操作系统》学习笔记(五)已关闭评论 ⁄ 阅读 2,817 次
《自己动手写操作系统》学习笔记目录(持续更新)  http://www.techbulo.com/832.html 实模式->保护模式->实模式 实模式------>保护模式------>实模式 一、“实模式--保护模式--实模式”的转换过程 1、“实模式--保护模式”的跳转 (1)准备GDT (2)用lgdt加载gdtr (3)打开A20 (4)置cr0的PE位 (5)跳转,进入保护模式 2、“保护模式--实模式”的跳转  (比实模式--->保护模式要复杂一些,因为在准备结束保护模式回到实模式之前,需要加载一个合适的段描述符选择子到有关段寄存器,以使对应段描述符告诉缓冲寄存器中......
阅读全文
  • 03月
  • 05日
技术文章 ⁄ 共 1884字 段描述符属性已关闭评论 ⁄ 阅读 1,943 次
段描述符属性占5、6字节,其具体特性如下: 在这里主要介绍第5字节的内容。 1、 P:存在(Present)位。 1 表示段在内存中存在 0 表示段在内存中不存在 2、 DPL:表示描述符特权级(Descriptor Privilege level),共2位。 它规定了所描述段的特权级,用于特权检查,以决定对该段能否访问。 3、 S:说明描述符的类型。 1 数据段和代码段描述符 0系统段描述符和门描述符 4、 TYPE:说明存储段描述符所描述的存储段的具体属性 数据段类型: 类型值              说明 --------------------------------- 0                只读 1        ......
阅读全文
  • 03月
  • 04日
操作系统 ⁄ 共 7081字 《自己动手写操作系统》学习笔记(四)已关闭评论 ⁄ 阅读 1,996 次
《自己动手写操作系统》学习笔记目录(持续更新)  http://www.techbulo.com/832.html 实模式跳转到保护模式 实模式------>保护模式 有了上一节的基础,那我们开始编码,看看如何实现先前描述的内容 首先,既然我们需要一个数组,全局描述符表,那我们就定义一块连续的结构体: [SECTION .gdt]    ;为了代码可读性,我们将这个数组放到一个节(段)中 ;由一块连续的地址组成的,不就是一个数组吗?看下面代码,^_^                                      段基地址    段界限 段属性 GDT_BEGIN: Descriptor 0,       0,    0   G......
阅读全文
  • 03月
  • 02日
操作系统 ⁄ 共 381字 《自己动手写操作系统》学习笔记(三)已关闭评论 ⁄ 阅读 2,304 次
《自己动手写操作系统》学习笔记目录(持续更新)  http://www.techbulo.com/832.html 嘎嘎 初识保护模式 初识保护模式 之 保护模式下寻址     请看这篇文章  http://www.techbulo.com/825.html   初识保护模式 之 保护模式下,什么是一致性代码和非一致性代码段  请看这篇文章  http://www.techbulo.com/789.html   初识保护模式 之 什么是GDT,LDT,GDTR,LDTR  请看这篇文章  http://www.techbulo.com/708.html   初识保护模式 之 什么是A20 地址线 请看这篇文章  http://www.techbulo.com/703.html
阅读全文
  • 02月
  • 28日
操作系统 ⁄ 共 1456字 为什么不能从32位的保护模式直接跳转到实模式已关闭评论 ⁄ 阅读 2,009 次
为什么不能从32位的保护模式直接跳转到实模式,而要先跳转到16位的保护模式,再从16位的保护模式跳转到实模式的理解 呼呼 不能从32位代码段返回实模式,而只能从16位代码段返回。 原因:(书中说的)因为无法实现从32位代码段返回时CS高速缓冲寄存器中的属性符合实模式的要求(实模式不能改变段属性) 下面具体的来进行分析: ;****************注意在此用normal选择子对段寄存器进行填充****************************** mov ax, SelectorNormal mov ds, ax mov es, ax mov fs, ax mov gs, ax mov ss, ax 从上述代码可以看出:ds,es,fs......
阅读全文
  • 02月
  • 27日
操作系统 ⁄ 共 3340字 段描述符高速缓冲寄存器介绍已关闭评论 ⁄ 阅读 2,194 次
描述符高速缓存寄存器 在实模式下,段寄存器含有段值,为访问存储器形成物理地址时,处理器引用相应的某个段寄存器并将其值乘以16,形成20位的段基地址。在保护模式下,段寄存器含有段选择子,如上所述,为了访问存储器形成线性地址时,处理器要使用选择子所指定的描述符中的基地址等信息。为了避免在每次存储器访问时,都要访问描述符表而获得对应的段描述符,从80286开始每个段寄存器都配有一个高速缓冲寄存器,称之为段描述符高速缓冲寄存器或描述符投影寄存器,对程序员而言它是不可见的。每当把一个选择子装入到某个段寄存器时......
阅读全文
  • 02月
  • 21日
常见问题 ⁄ 共 307字 串口显示被占用怎么办?清除被占用的串口已关闭评论 ⁄ 阅读 3,550 次
串口被占用 可以通过删除注册表中的一个数值项来清除这些配置:在“运行”对话框中输入“regedit”进入注册表;然后进入 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\COM Name Arbiter这时我们可以找到该数值项:ComDB,它的值代表目前使用中的串口端号。比如1d,它的二进制:0001 1101,则从右往左数代表第1,3,4,5端口被占用。这样我们只需要把ComDB这个数据项删除,关闭注册表(不用重启电脑)即可。
阅读全文
  • 02月
  • 16日
技术文章 ⁄ 共 3315字 “段寄存器”的故事–转自网络已关闭评论 ⁄ 阅读 1,927 次
段寄存器 一、 段寄存器的产生 段寄存器的产生源于Intel 8086 CPU体系结构中数据总线与地址总线的宽度不一致。 数据总线的宽度,也即是ALU(算数逻辑单元)的宽度,平常说一个CPU是“16位”或者“32位”指的就是这个。8086CPU的数据总线是16位。 地址总线的宽度不一定要与ALU的宽度相同。因为ALU的宽度是固定的,它受限于当时的工艺水平,当时只能制造出16位的ALU;但地址总线不一样,它可以设计得更宽。地址总线的宽度如果与ALU相同当然是不错的办法,这样CPU的结构比较均衡,寻址可以在单个指令周期内完成,效率最高;而且从软件的解......
阅读全文
  • 02月
  • 13日
操作系统 ⁄ 共 508字 《自己动手写操作系统》学习笔记目录(持续更新)已关闭评论 ⁄ 阅读 2,659 次
自己动手写操作系统 《自己动手写操作系统》学习笔记(一)     http://www.techbulo.com/605.html 《自己动手写操作系统》学习笔记(二)     http://www.techbulo.com/689.html 《自己动手写操作系统》杂记一              http://www.techbulo.com/816.html 《自己动手写操作系统》学习笔记(三)     http://www.techbulo.com/869.html 《自己动手写操作系统》学习笔记(四)     http://www.techbulo.com/878.html 《自己动手写操作系统》学习笔记(五)     http://www.techbulo.com/888.html 《自己动手写操作系统》学习笔记(六)     h......
阅读全文
  • 02月
  • 12日
操作系统 ⁄ 共 8551字 《自己动手写操作系统》常见疑惑问与答(持续更新)已关闭评论 ⁄ 阅读 2,159 次
《自己动手写操作系统》学习笔记目录(持续更新)  http://www.techbulo.com/832.html question 1、问:操作系统如何能够开始控制一台计算机,操作系统的起点是什么?     答:操作系统的“开端”一般被认为是引导程序(Boot),它是操作系统程序中最早被计算机硬件系统加载入内存并执行的部分,引导程序一般规定长度为512个字节,就是从这512字节开始,操作系统被一步步装载入计算机内存,进而最终控制整台计算机。那么引导程序是如何被找到并加载入计算机内存的呢?这里涉及到硬件厂商和软件厂商的协调。协调的结果如下:当计算机加......
阅读全文
  • 02月
  • 11日
操作系统 ⁄ 共 2355字 保护模式下寻址已关闭评论 ⁄ 阅读 2,615 次
实模式下的内存寻址: 让我们首先来回顾实模式下的寻址方式 段首地址×16+偏移量 = 物理地址 为什么要×16?因为在8086CPU中,地址线是20位,但寄存器是16位的,最高寻址64KB,它无法寻址到1M内存。于是,Intel设计了这种寻址方式,先缩小4位成16位放入到段寄存器,用到时候,再将其扩大到20位,这也造成了段的首地址必须是16的倍数的限制。 保护模式下分段机制的内存寻址: 保护模式下 分段机制是利用一个称作段选择符的偏移量,从而到描述符表找到需要的段描述符,而这个段描述符中就存放着真正的段的物理首地址,再加上偏移量 一......
阅读全文
×