怎样⽤c语⾔做硬件开发,如何学习嵌⼊式(硬件篇)
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
这段时间很多想学技术的朋友问起怎样学习嵌⼊式,对于⼀个刚开始接触嵌⼊式的朋友来说,这的确是个问题。在这⾥我就给⼤家讲讲怎样利⽤来学习嵌⼊式系统。
学习嵌⼊式之前我们需要了解什么是嵌⼊式。
(官⽅说法)嵌⼊式系统是⼀种专⽤的计算机系统,作为装置或设备的⼀部分。国内普遍认同的嵌⼊式系统定义为:以应⽤为中⼼,以计算机技术为基础,软硬件可裁剪,适应应⽤系统对功能、可靠性、成本、体积、功耗等严格要求的专⽤计算机系统。举些例⼦,⼿机、电⼦时钟、智能报警装置、⾃动监控器、出租车计费器等等都属于嵌⼊式系统。
嵌⼊式系统是硬件和软件的综合体,这⾥来看看嵌⼊式系统的具体框图,以⼿机为例吧。
(硬件篇)
1、基本电路知识
嵌⼊式硬件也是需要许多电路搭建起来的,学习嵌⼊式之前必须对电路基本知识有⼀定基础。了解常⽤的基本器件,基本仪器使⽤,具有⼀定的电路分析能⼒。这样你才能看得懂嵌⼊式系统的硬件电路图,才能为后续开发奠定基础。
2、基本语⾔知识
嵌⼊式驱动程序编写需要⽤到C语⾔,因此在学习嵌⼊式之前还必须熟练C语⾔基本语法,并能编写些普通程序代码。这⾥需要提醒,在学习C语⾔时养成规范的编程习惯,如添加备注、注意排版等,这将对以后的程序准确性有很⼤影响。
3、单⽚机(51单⽚机)
初学者⾸次接触嵌⼊式处理器⼀般都是51单⽚机,51单⽚机⼊门相对简单,并且通⽤度⽐较⾼,可以购买开发板动⼿学习。如学习编写流⽔灯、按键扫描、数码管、液晶显⽰、AD/DA采样等简单程序。
4、基于单⽚机的电⼦系统⾃设计
有了前⾯的学习经历,可⾃⼰脱离开发板,⾃⼰设计并绘制电路图,⾃⼰焊接或者⽣产PCB板,设计⼩型的电⼦系统。如设计⼀个寻线⼩车,温度采集、时钟显⽰等嵌⼊式系统。
5、430、STM32、Cortex-M3(可选)c语言如何去学
430单⽚机、STM32以及Cortex-M3处理器作为学习嵌⼊式操作系统前的过渡阶段,各位朋友可以⾃⾏选择学习。为什么需要⽤他们来过渡呢?
因为51单⽚机内部寄存器很少,编写程序时不需要对GPIO⼝进⾏配置,默认就已经是输⼊或者输出。⽽当处理器功能强⼤之后,往往⼀个GPIO可实现多种功能,如USB功能、IIC功能、UART功能。在使⽤这种GPIO时就必须先进⾏配置,才能满⾜需求。因此在学习后⾯操作系统之前,有时间的同学可以从这些单⽚机过渡,这样不⾄于后续学习摸不到头脑。
6、ARM9/ARM11裸机学习
裸机程序编写,即不带操作系统的程序编写,其作⽤和上⾯430单⽚机的作⽤相似,⽬地就是为了熟悉ARM架构,对ARM寄存器有深⼊的了解,这将对以后的驱动程序编写带来很⼤的⽅便。同样,裸机程序学习可像51单⽚机⼀样,购买开发板,在开发板上进⾏⼀些中断、GPIO、UART的操作。
7、Linux系统移植&BOOTLOADER
嵌⼊式系统学习特别注意⼜特别难的地⽅就是Linux系统移植,对于系统的移植、系统的裁剪是学习的难点。搭建嵌⼊式操作系统的开发环境,即交叉编译环境也⽐较⿇烦,因此在学习过程中⼀定要⼀步⼀步动⼿实践操作。
BOOTLOADER是操作系统启动前,进⾏硬件初始化以及搭建操作系统运⾏环境的⼀段代码,有点类似于PC机的BIOS程序。BOOTLOADER主要与硬件关系很⼤,需对处理器寄存器相当的熟悉,因此在初期学习的时候可以参考U-boot等学习。
8、基于Linux的底层驱动编写
上⾯学习了Linux系统移植,就可以编写底层驱动程序了,通过交叉编译环境将驱动程序编译并下载到⽬标板上,并且编写⼀段⼩测试程序验证驱动的正确性。如在Linux下实现流⽔灯,实现按键功能。
9、基于操作系统的电⼦设计
学习到这⼀步,就可以称得上嵌⼊式硬件⾼⼿了,因为你已经具备独⾃设计嵌⼊式系统的能⼒了,现在就来⼩试⽜⼑。可以设计⼀些基于操作系统的摄像头驱动、按键驱动、红外驱动等。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论