linux硬件开发学习,硬件学习该从何下手
嵌入式的硬件学习是开始嵌入式的基础,从第一个最简单的流水灯开始,都是从开始读懂硬件原理图开始的,所有首先要有基本的电路知识,然后就是可以先学一下51单片机开发板,学习一下51的单片机基本外围设备有哪些。再做做基于单片机的电子系统自设计,如电子时钟之类的,然后再慢慢的开始MO,STM32,ARM9,11,ARM A9 等系列的开发板的硬件,基础硬件的配置,bootloader的移植,最后再做一个基于操作系统的电子设计,就差不多对嵌入式的硬件有个通透的了解了。
1、基本电路知识
嵌入式硬件也是需要许多电路搭建起来的,学习嵌入式之前必须对电路基本知识有一定基础。了解常用的基本器件,基本仪器使用,具有一定的电路分析能力。这样你才能看得懂嵌入式系统的硬件电路图,才能为后续开发奠定基础。
2、基本语言知识
嵌入式驱动程序编写需要用到C语言,因此在学习嵌入式之前还必须熟练C语言基本语法,并能编写些普通程序代码。这里需要提醒,在学习C语言时养成规范的编程习惯,如添加备注、注意排版等,这将对以后的程序准确性有很大影响。
3、单片机(51单片机)
初学者首次接触嵌入式处理器一般都是51单片机,51单片机入门相对简单,并且通用度比较高,可以购买开发板动手学习。如学习编写流水灯、按键扫描、数码管、液晶显示、AD/DA采样等简单程序。
4、基于单片机的电子系统自设计
有了前面的学习经历,可自己脱离开发板,自己设计并绘制电路图,自己焊接或者生产PCB板,设计小型的电子系统。如设计一个寻线小车,温度采集、时钟显示等嵌入式系统。
5、430、STM32、Cortex-M3(可选)
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、基于操作系统的电子设计
学习到这一步,就可以称得上嵌入式硬件高手了,因为你已经具备独自设计嵌入式系统的能力了,现在就来小试牛刀。可以设计一些基于操作系统的摄像头驱动、按键驱动、红外驱动等。
总结:
其实嵌入式硬件的学习和软件学习是分不开的。在学习硬件的过程当中,也要不断的测试,从8位的单片机到32位的,从没有操作系统到有嵌入式操作系统,从简单的流水灯到复制的bootloader移植。都是软件硬件分不开的。
linux硬件开发学习,硬件学习该从何下手相关推荐
- i.MX6ULL Linux阿尔法开发板硬件与调试
文章目录 1. 硬件 1.1 驱动与开发软件 1.2 拨码开关 2. 调试与测试 2.1 登录开发板 2.2 输入控制 2.2.1 查看按键所对应的输入事件 2.2.2 查看按键触发事件打印信息 2. ...
- 如何从一个小白到硬件开发高手,学习步骤是什么?
任何高手都是从小白起步的,所以小白不可怕,只要有目标.有行动,距离高手很近. 1.要有扎实的理论基础 硬件既是一门理论又是一门技术,要有强大的基础理论的支撑,所以在大神之前,一定要把理论搞清楚.所以, ...
- Linux系统开发: 基础命令学习
一.Linux系统介绍 Linux是一套免费使用和自由传播的Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.支持32位和64位硬件,Linux继承了U ...
- 【C语言 Linux系统开发 视频课程学习笔记】
学习的课程在b站:史上最强最细腻的linux嵌入式C语言学习教程[李慧芹老师] 感谢李老师!感谢up主! 本篇博客只是收集一下学习过程中遇到的函数和其他知识点,并不会详细展开.某个函数的具 ...
- Linux驱动开发(硬件基础知识)——存储器
文章目录 前言 非易失性存储器 ROM FLASH NOR Flash 公共闪存接口(CFI) NAND Flash IDE 掉电丢失数据存储器 静态RAM(SRAM) 动态RAM(DRAM) 特定R ...
- linux qnx 开发平台,QNX学习笔记之QNX Momentics IDE开发工具使用笔记
使用tftp,串口连接Target,下载内核 1.uboot的使用 1) 采用串口,波特率为115200, 采用QNX M IDE默认的设置,按任意键,即可进入uboot 2) 常用的命令有: set ...
- Linux系统开发: 命令进阶学习(一)
一.解压缩命令介绍 Linux下最常用的打包程序是tar命令,使用tar打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的,生成tar包后,就可以用其它的程序来进行压缩了. 1. ...
- HarmonyOS硬件创新合作伙伴,【HarmonyOS】HarmonyOS智能硬件开发学习指南 - HDC2020
2020年9月10日,华为HarmonyOS 2.0版本正式官宣!这一次,借助 HarmonyOS 全场景分布式系统和设备生态,将定义全新的硬件.交互和服务体验,打开焕然一新的全场景世界,不愧是Har ...
- 嵌入式Linux应用开发学习路线--自用
嵌入式Linux应用开发学习路线–自用 嵌入式应用开发路线: 对于有简单的ST32基础和AD基础的人比较合适 个人理解: 先按照韦东山老师的思路,学下来,建议一个基本的框架,然后根据嵌入式Linux应 ...
- C/C++ Linux后端进BAT的学习路线(腾讯官方认证)丨Linux服务器开发
我相信对于每一个程序员来说都有一个进入BAT的梦想,今天Hu先生给大家分享的是经过腾讯官方认证的一份C/C++Linux后端开发的知识点学习路线总结.大家可以根据知识点对比,看看自己目前还有哪些技术需 ...
最新文章
- c语言如何判断密码不同字符,C语言从文本文档读取字符串(用户名和密码验证)...
- 最短路径Dijkstra讲解,工具包使用 python
- 如何打通“鱼塘” ?腾讯启动“SaaS技术联盟” 共建技术中台
- C语言变量声明和定义 - C语言零基础入门教程
- 华为python有必要学吗_【华为云技术分享】这个 Python 库有必要好好学学
- Html 5 Input type=range 滑动条
- 微信支付功能测试用例
- mysql等级保护_网络安全等级保护测评-MYSQL篇
- All-Pay Contests 论文定理推导(博弈论+机制设计)
- 使用ISO镜像制作适用于OpenStack的云镜像
- 笔记............................
- SpringBoot整合j2cache缓存
- 自动化学报latex模板——ctex2.4.6和ctex2.9.2直接使用步骤
- Java实现bt文件下载、制作、解析、磁力链接
- 利用DISM修复WIN11的系统组件错误
- Smart210学习记录------块设备
- 中国顶级门户网站架构分析1
- ios 9 10 11 air mirror 交互协议
- 基于全过程通道相关像素值顺序的彩色图像可逆数据隐藏
- Leave a dent in the world:陶建辉,52岁程序员与TDengine一起成长的四年
热门文章
- tf.get_variable与tf.variable_scope
- 555定时器的应用——多谐振荡器
- PHP 数据库中的模糊查询
- 第一次个人项目【词频统计】——PSP表格
- Vijos——T 1016 北京2008的挂钟 || 洛谷—— P1213 时钟
- sql 的 DATE_FORMATE()函数
- !DOCTYPE标签的定义与用法
- Alarm:IT界朋友请珍惜你的身体[转贴]
- 以命令行的格式读取音频文件信息,并将读取的内容写到输出文件中
- [转载] python 字符串查找的4个方法和count函数