1.天生荣耀:ARM Cortex-M处理器由来 ARM公司自2004年推出ARMv7内核架构时,摒弃了以往"ARM+数字"这种处理器命名方法(ARM11之前的处理器统称经典处理器系列),重新启用Cortex来命名,并将Cortex系列细分为三大类: Cortex-A系列:面向性能密集型系统的应用处理器内核 Cortex-R系列:面向实时应用的高性能内核 Cortex-M系列:面向各类嵌入式应用的微控制器内核 Cortex-M系列主要是用来取代经典处理器ARM7系列(比如基于ARMv4…
众所周知,ARM公司是一家微处理器行业的知名企业,ARM公司本身并不靠自有的设计来制造或出售CPU,而是将处理器架构授权给有兴趣的厂家.这些厂家基本涵盖了全球领先的知名半导体企业.软件和OEM厂商:TI, NXP, ST, Infineon, ADI, Cypress:Atollic,IAR system,FreeRTOS,SEGGER等. 1.ARM内核体系架构历史 ARM是Advanced RISC Machines的缩写.ARM架构是一个32位精简指令集(RISC)处理器架构,其广泛地使用…
1.处理器的性能指标 用于评价CPU的性能指标非常多,不同的性能侧重点下的测试标准可能得出的指标值不同,下面介绍嵌入式行业广泛使用的两个经典的测试标准. 1.1 Dhrystone标准 Dhrystone是由Reinhold P. Weicker在1984年提出来的一个基准测试程序,其主要目的是测试处理器的整数运算和逻辑运算的性能. Dhrystone程序最初用Ada语言发布,后来Rick Richardson为Unix开发了用C语言编写的Version 1.1,这个版本也成功的推动了Dhrys…
大家好,我是豹哥,猎豹的豹,犀利哥的哥.今天豹哥给大家讲的是嵌入式开发里的source文件种类. 众所周知,嵌入式开发属于偏底层的开发,主要编程语言是C和汇编.所以本文要讲的source文件主要指的就是c文件和汇编文件. 尽管在平常开发中,我们都只会关注自己创建的.c/.h/.s源文件,但实际上我们不知不觉中也跟很多不是我们创建的源文件在打交道,那么问题来了,一个完整的嵌入式工程(以基于ARM Cortex-M控制器的工程为例)到底会包含哪些source文件呢? 现在就到了豹哥的show tim…
大家好,我是豹哥,猎豹的豹,犀利哥的哥.今天豹哥给大家讲的是嵌入式开发里的linker文件. 在前一节课source文件详解里,豹哥给大家系统地介绍了source文件,source文件是嵌入式工程里典型的input文件,那么还有没有其他类型的input文件?既然豹哥这么提问了,那答案肯定是有啦.今天豹哥要讲的linker文件就属于另一种input文件. linker文件顾名思义就是嵌入式工程在链接阶段所要用到的文件,source文件在编译过程完成之后(此时已经是机器可识别的二进制机器码数据),需…
大家好,我是豹哥,猎豹的豹,犀利哥的哥.今天豹哥给大家讲的是嵌入式开发里的project文件. 前面两节课里,豹哥分别给大家介绍了嵌入式开发中的两种典型input文件:source文件.linker文件.豹哥要再次提问了,还有没有input文件呢?答案确实是有,但这次真的是有且仅有了,本文要介绍的主角project文件也属于半个input文件.为什么说是半个?因为project文件不仅包含开发者指定的input信息,还包含很多其他辅助调试的input/output信息,算是嵌入式开发中承前启后的…
大家好,我是豹哥,猎豹的豹,犀利哥的哥.今天豹哥给大家讲的是嵌入式开发里的relocatable文件(object, library). 前三节课里,豹哥都是在给大家介绍嵌入式开发中的input文件.从今天这节课开始,豹哥就陆续为大家讲output文件.上一节课project文件里讲说到project文件是一个承前启后的文件,今天豹哥就为大家讲project生成的第一类output文件:relocatable文件. relocatable文件,即可重定向文件,这个文件是由编译器汇编源文件(.c/…
大家好,我是豹哥,猎豹的豹,犀利哥的哥.今天豹哥给大家讲的是嵌入式开发里的image文件(.bin, .hex, .s19). 今天这节课是豹哥<ARM Cortex-M开发之文件详解>主题系列的最后一节课(突然有点不舍,要告别的感觉,咳咳,让豹哥整理下情绪先).今天豹哥主要讲的是工程开发最终的output文件,即image文件.image文件也叫镜像文件,这个文件主要包含的是只有芯片能够解释执行的二进制机器码数据,这些数据其实在前面介绍的relocatable.list.executable…
一.构建嵌入式开发环境 1.编译bootloader并烧写到板子中---uboot, 可以自己定制bootloader and logo 2.编译file system 并烧写--内嵌APP 3.编译linux kernel----定制drivers and logo 4.编译APP 5.编译file system 备份---内嵌APP 6.安装交叉编译工具 7.安装调试工具 二.嵌入式编程基础知识 一般的c/c++文件要变成可执行文件需要经过预处理.编译.汇编.和连接等4个步骤 1)预处理 以…
大家好,我是痞子衡,是正经搞技术的痞子.本系列痞子衡给大家介绍的是ARM Cortex-M内核微控制器相关知识. ARM公司从2004年开始推出Cortex-M系列内核,迄今Cortex-M家族已经包含九款Cortex-M0/M0+/M1/M3/M4/M7/M23/M33/M35P,一个合格的Cortex-M微控制器开发者必须要对这些内核有充分了解,读内核手册是了解内核的主要途径,而对于Cortex-M软件开发者来说还可以从CMSIS(Cortex-M软件接口标准)入手来逐步了解内核的使用. 本…