文件是Linux系统处理数据的基本单位,实际上,Linux系统所有的数据以及其他实体都是按照文件组织的。shell程序使用文件名通配符可以查询符合指定条件的文件名。......
2023-11-19
当前的嵌入式应用程序开发过程,C语言成了绝大部分场合的最佳选择。因此,main()函数成了程序执行的起点——因为C程序从main()函数开始执行。但是,一个经常会被忽略的问题是微控制器上电后如何寻找并执行main()函数?微控制器无法从硬件上定位main()函数的入口地址,因为使用C语言作为开发语言后,变量/函数的地址由编译器在编译时自行分配,即main()函数的入口地址在微控制器的内部存储空间中不再是绝对不变的。
因此,每种微控制器都必须有启动文件(Bootloader),其作用是负责执行微控制器从“复位”到“开始执行main()函数”这段时间(称为启动过程)所必须进行的工作。
处理器启动文件通常由厂家提供,对于以ARM Cortex-M4为内核的STM32F4处理器来说,在Keil μVisi/On集成开发环境(Integrated Development Environment,IDE)下的启动文件为startup_stm32f40_41×××.s(版本号V1.4.0)。启动文件采用ARM汇编程序设计,主要源程序如下:(www.chuimin.cn)
通过阅读上述启动文件,可以了解到Cortex-M4处理器的启动文件主要完成了堆栈初始化、复位事件处理初始化、异常向量表初始化等工作,并调用C函数库的__main函数进入基于C语言的主文件中。同时,在复位后,Cortex-M4处理器进入线程模式、特权级,且使用主堆栈指针(MSP)。
此外,启动文件中输入了多个全局标号,表示将会调用多个其他文件中的程序段来完成启动过程。因此,该启动文件仅能反映系统启动时的主要流程,不能体现其内部的具体操作。读者如果有兴趣,可以根据所述全局标号,在固件库中寻找其具体内容并深入理解启动全过程。
有关嵌入式系统原理及应用:基于ARM Cortex-M4体系结构的文章
文件是Linux系统处理数据的基本单位,实际上,Linux系统所有的数据以及其他实体都是按照文件组织的。shell程序使用文件名通配符可以查询符合指定条件的文件名。......
2023-11-19
颜色参数可参阅头文件LCD.h中的颜色常量,也可按照RGB565格式自己定义。2.与英文或数字显示有关的接口函数接口函数中与英文或数字显示有关的主要是void LCD_ShowChar、void LCD_ShowNum、void LCD_Show2Num和void LCD_ShowString,功能介绍如下。此外,由于hanzi[]数组中字模都是预先存入的汉字,因此只能显示这部分汉字,适用于一定数量固定汉字显示的情况。void LCD_DrawRectangle的函数功能:以点和点为对角定点画矩形。......
2023-11-21
在初始化时,需对RTC和数码管部分进行初始化,其中数码管部分初始化在本章的8.4节有详述,此处不再赘述。开启LSE的库函数如下:同时,选择RTC时钟源及使能时钟函数如下:初始化RTC,设置RTC的分频和配置参数。第2个日期初始化参数结构体RTC_DateTypeDef的定义如下:这4个参数分别用来设置日期的星期、月份、日期、年份。2.读取RTC信息并显示过程RTC模块初始化完成后,在需要使用时直接调用固件函数获取RTC模块当前日期和时间即可。......
2023-11-21
1.像素像素是组成图像的最基本单元要素,显示屏的像素指它成像最小的点,即前面讲解液晶原理中提到的一个显示单元。2.分辨率一些嵌入式设备的显示屏常以“行像素值×列像素值”表示屏幕的分辨率。4.显示屏尺寸显示屏的大小一般以英寸表示,如5英寸、21英寸、24英寸等,这个长度是指屏幕对角线的长度,通过显示屏的对角线长度及长宽比可确定显示屏的实际长宽尺寸。LED点阵显示屏的点距一般比较大,适合远距离观看。......
2023-11-21
GBLS伪指令用于定义一个全局的字符串变量,并初始化为空。例如:4.寄存器列表定义伪指令RLIST格式:名称RLIST{寄存器列表}功能:RLIST伪指令可用于对一个通用寄存器列表定义名称,使用该伪指令定义的名称可在ARM指令LDM/STM中使用。......
2023-11-21
对一个打开的文件而言,最常用到的就是对文件的读写操作,在Linux系统中,提供了系统调用函数实现文件的读写操作。读取文件数据时,文件的当前读写位置会向后移。以下几种读取文件数据情况下,返回的字节数会小于count值。......
2023-11-19
Linux系统继承了UNIX系统的特点,文件系统的目录有约定的结构,并且每个目录也有约定的功能定义。图7.1Linux文件系统目录结构在Linux系统命令行下使用“ls/-p”可以得到根目录下目录的列表,图7.0是一个示意图。fsck程序会检测并尝试恢复不正确的文件,被恢复的文件会放在这个目录下。此目录并不是强制要求,目的是为了系统目录工整。创建硬链接后,已经存在的文件的I节点号会被多个目录文件项使用。......
2023-11-19
S5PV210是三星公司推出的一款基于Cortex-A8架构的高性能应用处理器,其启动过程由BL0、BL1和BL23部分代码实现,其中BL0在出厂时已经被固化到64 KB的iROM中。S5PV210的启动过程如图4.3所示。图4.3S5PV210的启动流程S5PV210上电后首先执行BL0,该段代码主要的工作序列如下所示:关看门狗时钟。检查是否是安全模式启动,如果是则验证BL1完整性。BL2实际上是整个BootLoader的主体部分,因此它需要完成更多的初始化工作,例如初始化网卡、Flash等,之后BL2读取操作系统镜像到内存中运行。......
2023-11-19
相关推荐