简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
Bootloader是cpu在上电后执行的第一段代码,用于初始化各类资源,并且跳转到主程序上执行,比如初始化sp寄存器,将rom中的数据搬运到ram上,清零bss段等等。百度百科的词条中,这样解释Bootloader:“一般系统引导程序都是固化在flash中(因为ram断电即失),上电后先执行引导程序再跳转到主程序上执行:一般引导程序都是使用汇编语言编写(毕竟涉及到一些寄存器操作),下面我会写一个
Linux内核官方网站为:http://www.kernel.org或者使用git将源码clone下来(我这里使用的版本为2.6):clone下来的源码目录结构如下:其中比较重要的目录的官方描述如下: 对应的中文描述如下:2、升级GCC版本由于腾讯云初始gcc版本为4.8.5,而编译内核需要的最低版本为5.1.0,所以需要安装高于5.1.0版本的gcc。设置devtoolset-7 为默认的gcc
本指南描述了 32 位 x86 汇编语言编程的基础知识,包括寄存器结构,数据表示,基本的操作指令(包括数据传送指令、逻辑计算指令、算数运算指令),以及函数的调用规则。
一般来说,异常为当前执行的指令发生了“不正常的情况”,如除法指令的除数为0、缺页异常等等,异常发生后会跳转执行异常处理程序,视情况决定是否跳回发生异常的指令继续执行,如缺页异常在执行完缺页处理程序后会跳转到原指令继续执行,而非法指令引起的异常则不会跳回原指令继续执行。而中断则是在当前执行流中发生了某个外部事件,需要暂停当前执行流去处理这个外部事件,和异常一样,处理完后也要视情况决定是否返回原执行流
SPI通信模式为主-从模式 ,分为一主一从、一主多从:片选线CS用于主机选择对应的从机进行通信,片选线置低电平为通信开始信号,被拉高则为开始信号。
编译一个 C 程序从可以分为四个阶段:预处理 --> 编译(生成汇编代码)--> 汇编 --> 链接。下面以大家最熟悉的 hello world 程序为例,编译器为 linux 下的 gcc。执行该文件可以打印 hello world:下面我们把几个步骤分开执行来理解每个步骤所完成的工作。
在linux中,一切皆文件,设备也是作为文件存在于linux里面的,我们在应用层对设备进行各种操作就相当于对文件进行读写操作,所以为了让应用层能够通过对文件的操作来控制设备,我们要提供接口给应用层(如open,read,write等等),比如通过read读取引脚电平(按键是否按下),通过write来让引脚为高电平或者低电平(控制led是否打开)。
所有的调度器必须堆进程运行时间做记账,CFS虽然不再有时间片的概念,但是它也必须维护每个进程的运行时间记账,每次系统时钟节拍发生时,时间片都会被减少一个节拍周期,当一个进程的时间片被减少到 0 时,它就会被另一个尚未减到 0 的时间片可运行进程抢占。因此这种进程所需要占用处理器运行的时间很短,因为他们在等待I/O时最后总会自己阻塞(这里说的I/O指任何类型的可阻塞资源,如键盘输入,或网络I/O,实
触发器,英文名称,简称FF,,因此它的输出具有两个稳定状态——状态0和状态1。触发器有很多类型,如RS触发器、D触发器、JK触发器、T触发器等。
其中 gcc-riscv64-unknown-elf 就是我们的交叉编译工具,可以把程序编译成riscv上的可执行文件;gdb为debug工具;qemu是一个模拟器,可以模拟出riscv系统。经过处理,生成的二进制文件只含有机器指令。但此时的程序并不能直接运行。知道如何烧录程序到处理器上的话,之后操作系统的开发和验证都会方便很多。,它是一个 ELF 文件。部分的机器指令,所以用。编译后,我们可以得