创作

完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>

3天内不再提示

学嵌入式开发入门_学嵌入式开发需要看哪些书籍

陈翠 来源:网络整理 2018-04-04 10:25 次阅读

现在嵌入式开发越来越吃香,很多人都想要学习却不知道要从何下手。本文分析了学习嵌入式软件开发需要具备哪些基本知识和技能,开发学习的基本步骤,并给出了各种参考资料及网站,同时小编还推荐了学习嵌入式开发的书籍。

学嵌入式开发入门

一、软硬件的基本技能

关于ARM+linux,涉及软硬件两块,要求通吃,这种人才比较适合成长为嵌入式系统架构师

1、硬件包括处理器的体系结构及硬件总线接口两部分

1)处理器的体系结构

需要对微机原理、单片机、处理器等有所了解,基本上搞明白一种处理器如ARM、MIPS、PPC、DSP,学习其他的就很快了

2)硬件总线接口

最底层的,驱动开发是最常见的工作了。

这需要对各种硬件总线接口等有所了解,如IIS、IIC、UART、SPICAN、MDIO、USB、PCI、PCMCIA、SDRAM、FLASH及EEPROM等,设备千差万别,但基本的连接都是通过这些接口进行的,搞明白了接口剩下的就是具体芯片的事了。

2、软件主要包括开发语言及操作系统开发

1)开发语言

嵌入式软开以C语言开发为主,要求精通指针、结构指针、指针函数及所有的数据类型转换,对const、static、volatile、packed、aligned等关键字有深入的认识。

2)操作系统开发

如果想搞嵌入式软件开发的话,不学点操作系统方面的知识你会发现没什么市场。现在基本上是个平台都想跑个操作系统,控制类的uC/OS-II,eCos,这些都是小型的操作系统,学起来简单,但在求职中市场小。

手机类的,如Windows Mobile、Sybian、PalmOS及Andriod,搞Sybian、PalmOS的人还不多,Windows Mobile和Andriod还是挺火的,也是未来的领导者。

网络通信类的,如VxWorks、Linux等大型复杂的操作系统,也是企业要求最多的,还有不太知名的OSE,但其在基站设备中占据了50%的市场份额。

当然还有不带MMU的,如uClinux、Nucleus等。

个人感觉尤其是Linux是目前求职市场中最火的,主要是由于其开源的优势,很多单位都在往这方面投入以减少成本。

如果以前对操作系统方面了解较少的话,个人建议可以先学学uC/OS-II,简单易上手,主要是借此学习操作系统的相关知识。

然后主打Linux,要结合开发板来学,这样才上手的快。

二、开发板

广州优龙、华恒等都是比较知名的开发板厂家,配套的资料比较完善,相应的技术支持也不错,可以考虑。

三、开发流程及参考书目

嵌入式开发需要遵循一个基本的流程,首先是开发环境及流程,然后是驱动开发和应用程序开发,最后就是深入内核的海洋,学习设计理念及方法,最高境界就是就是将这些设计思路娴熟的运用在任意一个应用环境中,那时候就是神了~~~

1、嵌入式开发设计流程:

1)ARM嵌入式Linux系统构造与驱动开发范例

2)嵌入式设计及Linux驱动开发指南

3)嵌入式Linux应用程序开发详解

都属于Linux开发设计流程方面的入门书籍,嵌入式开发的基础

2、Linux驱动开发:

1)嵌入式系统接口设计与Linux驱动程序开发 北京航空航天大学出版社 刘淼 强烈推荐; 包括各种硬件总线接口范例,接口开发必备

2)Linux设备驱动程序《Linux Device Drivers third edition》,Linux驱动开发必备经典,粗读查询即可,当然最基本的字符设备驱动和块设备驱动必须熟练掌握

3、 Linux应用程序开发:

UNIX环境高级编程

UNIX网络编程全卷

4、Linux内核开发:

内核完全注释,源代码级的分析,但版本较低

深入理解Linux内核Understanding the Linux Kernel,太深了,东西太多,最后看合适

Linux内核设计与实现Linux Kernel Development,内核整体结构和基本理论知识

5、ARM:

ARM体系结构与编程,杜春蕾

ARM应用系统开发详解

四、相关Linux网站

1、各种Linux论坛

http://www.linuxforum.net/forum/ubbthreads.php

http://www.linuxsir.org/bbs/

http://bbs.chinaunix.net/

http://www.linuxeden.com/forum/

http://www.linuxfans.org/bbs/index.php

2、开源网站

http://sourceforge.net/

http://www.denx.de

http://www.pudn.com/

http://download.chinaunix.net/

3、内核源代码学习下载

http://lxr.linux.no/linux+v2.6.19/

http://www.kernel.org/pub/linux/kernel/

学嵌入式开发需要看哪些书籍_推荐

一、Linux基础

1、《Linux与Unix Shell 编程指南》

二、C语言基础

1、《C Primer Plus,5th Edition》【美】Stephen Prata着

2、《The C Programming Language, 2nd Edition》【美】Brian W. Kernighan David M. Rithie(K & R)着

3、《Advanced Programming in the UNIX Environment,2nd Edition》(APUE)

4、《嵌入式Linux应用程序开发详解》

三、Linux内核

1、《深入理解Linux内核》(第三版)

2、《Linux内核源代码情景分析》毛德操 胡希明著

四、研发方向

1、《UNIX Network Programming》(UNP)

2、《TCP/IP详解》

3、《Linux内核编程》

4、《Linux设备驱动开发》(LDD)

5、《Linux高级程序设计》 杨宗德著

五、硬件基础

1、《ARM体系结构与编程》杜春雷着

2、S3C2410 Datasheet

六、英语基础

1、《计算机与通信专业英语》

七、系统教程

1、《嵌入式系统――体系结构、编程与设计》

2、《嵌入式系统――采用公开源代码和StrongARM/Xscale处理器》毛德操 胡希明着

3、《Building Embedded Linux Systems》

4、《嵌入式ARM系统原理与实例开发》 杨宗德著

八、理论基础

1、《算法导论》

2、《数据结构(C语言版)》

3、《计算机组织与体系结构?性能分析》

4、《深入理解计算机系统》【美】Randal E. Bryant David O‘’Hallaron着

5、《操作系统:精髓与设计原理》

6、《编译原理》

7、《数据通信与计算机网络》

8、《数据压缩原理与应用》

九、C语言书籍推荐

1、The C programming language 《C程序设计语言》

2、Pointers on C 《C和指针》

3、C traps and pitfalls 《C陷阱与缺陷》

4、Expert C Lanuage 《专家C编程》

5、Writing Clean Code -----Microsoft Techiniques for Developing Bug-free C Programs

《编程精粹--Microsoft 编写优质无错C程序秘诀》

6、Programming Embedded Systems in C++ and C++ 《嵌入式系统编程》

7、《C语言嵌入式系统编程修炼》

8、《高质量C++/C编程指南》林锐

收藏 人收藏

    评论

    相关推荐

    【嵌入式开发教程8】手把手教你做平板电脑-USB 口读写

    发表于 04-28 15:48 4931次 阅读

    合宙开发LuatIDE为开发者提供强大集成式开发环境

    LuatIDE全新推出的UI设计器让图形化开发更为简单,也进一步提升项目开发效率,助力产品快速量产,....
    的头像 科技绿洲 发表于 04-18 15:09 275次 阅读

    【开发教程二】开源蓝牙心率防水运动手环_套件检测教程

    蓝牙心率防水运动手环套件检测教程——疯壳·智能穿戴开发系列 配套资料: 配套视频: 内容简介  &nb...
    发表于 04-15 11:47 4171次 阅读
    【开发教程二】开源蓝牙心率防水运动手环_套件检测教程

    嵌入式开发用RTOS的优势在哪?

    从软件工程的角度,我们在做软件开发时,都会强调高内聚、低耦合的原则。而裸机的模块化开发难度非常大,模....
    的头像 STM32嵌入式开发 发表于 04-13 11:40 190次 阅读

    嵌入式开发中可能面临的问题

    从软件工程的角度,我们在做软件开发时,都会强调高内聚、低耦合的原则。而裸机的模块化开发难度非常大,模....
    的头像 STM32嵌入式开发 发表于 04-08 11:33 3067次 阅读

    嵌入式开发中的C语言编程思想

    使用什么样的编码样式一直都颇具争议性的,比如缩进和大括号的位置。因为编码的样式也会影响程序的可读性,....
    的头像 STM32嵌入式开发 发表于 04-08 11:03 454次 阅读

    嵌入式发展方向有哪些?

    对于我们学习嵌入式的小伙伴儿而言,我们学的内容硬的有单片机、ARM,软的有Linux C、物联网协议、人工智能机器学习等,可谓...
    发表于 04-06 14:48 1162次 阅读
    嵌入式发展方向有哪些?

    如何利用现代嵌入式开发工具中的堆栈保护功能

     以被广泛使用的IAR Embedded Workbench for Arm嵌入式开发工具为例,使用....
    的头像 li5236 发表于 03-29 14:50 316次 阅读
    如何利用现代嵌入式开发工具中的堆栈保护功能

    Embedded Tools介绍和使用方法

    随后(在上周),微软也发布了基于 VS Code 的嵌入式开发插件(Embedded Tools),....
    的头像 strongerHuang 发表于 03-21 11:42 593次 阅读

    ​为什么嵌入式开发要选择C语言?

    简洁紧凑,使用灵活的语法机制,并能直接访问硬件能够直接访问硬件的语言有:汇编和C语言汇编属于低级语言....
    的头像 硬件攻城狮 发表于 03-11 10:21 413次 阅读

    RK3399开发板硬件有哪些参数呢

    RK3399是什么?RK3399开发板硬件有哪些参数呢?
    发表于 03-08 09:21 443次 阅读

    RISC-V IDE MounRiver Studio开发实战:TWEN32V RGB

    软件平台 Mounriver Studio,硬件平台TWENCH32V开发板。1、WS2812RGBRGB色彩模式是工业界的一种颜色标准,是通...
    发表于 03-04 15:00 7018次 阅读
    RISC-V IDE MounRiver Studio开发实战:TWEN32V RGB

    函数返回类型设计相关资料分享

    不知从什么时候起,对函数返回值,有一种下意识的认识:“0”是成功、非“0”表示失败。先讲个故事,就是项目移植时的一段小插曲...
    发表于 02-24 06:38 130次 阅读

    嵌入式开发的相关资料分享

    嵌入式开发中其实最重要的就是数据传输,这部分由于频繁的使用,高效的格式和算法就变得很重要,算法这部分会在其他文章单独叙述...
    发表于 02-23 07:22 303次 阅读

    STM32CubeMX教程之简介及基本使用

    STM32CubeMX教程之简介及基本使用  STM32CubeMX是意法半导体推出的图形化配置工具,通过傻瓜化的操作便能...
    发表于 02-21 07:40 583次 阅读

    什么是FSMC?FSMC如何操控LCD

    【朱老师课程总结】第一部分、章节目录3.7.1.STM32的NVIC和起始代码中的ISR3.7.2.STM32的外部中断3.7.3.标准库中N...
    发表于 02-17 06:29 312次 阅读

    如何采用SPI协议驱动SD卡?

    如何采用SPI协议驱动SD卡?
    发表于 02-16 06:40 282次 阅读

    嵌入式开发比单片机开发难?

    单片机和嵌入式,其实没有什么标准的定义来区分他们,对于进行过单片机和嵌入式开发的开发者来说,都有他们....
    发表于 02-11 15:29 97次 阅读
    嵌入式开发比单片机开发难?

    盘点嵌入式开发中常用的总线与接口

    任何一个微处理器都要与一定数量的部件和外围设备连接,但如果将各部件和每一种外围设备都分别用一组线路与....
    发表于 02-11 15:03 69次 阅读
    盘点嵌入式开发中常用的总线与接口

    嵌入式开发:十大课本上学不到的妙招

    1、离开舒适圈 虽然当了多年的工程师、但自认是系统与软件技术“通才”的DSP与嵌入式软件开发顾问公司....
    发表于 02-11 11:01 41次 阅读
    嵌入式开发:十大课本上学不到的妙招

    为什么说嵌入式开发比单片机要难很多?一位高手谈单片机和嵌入式开发设计经验

    单片机和嵌入式,其实没有什么标准的定义来区分他们,对于进行过单片机和嵌入式开发的开发者来说,都有他们....
    发表于 02-10 12:19 72次 阅读
    为什么说嵌入式开发比单片机要难很多?一位高手谈单片机和嵌入式开发设计经验

    嵌入式开发中,如何将Flash中的程序转移到RAM中运行?

    对于独立的嵌入式系统,需要把程序存入non-volitale存储单元中,常用的也就是flash。但是....
    发表于 02-09 10:14 74次 阅读
    嵌入式开发中,如何将Flash中的程序转移到RAM中运行?

    常用数码管,你了解多少?

    数码管是嵌入式开发中比较常用的一个模块,本篇文章根据查阅的资料以及学习笔记整理成文,尽可能详尽的讲解....
    发表于 02-09 09:55 162次 阅读
    常用数码管,你了解多少?

    STM32F103学习笔记-时钟

    本笔记简要介绍了时钟的相关定义和配置。
    发表于 01-18 08:31 68次 阅读
    STM32F103学习笔记-时钟

    【嵌入式编程】函数返回类型设计

    文章首发于同名微信公众号:DigCore欢迎关注同名微信公众号:DigCore,及时获取最新技术博文....
    发表于 01-12 17:47 63次 阅读
    【嵌入式编程】函数返回类型设计

    STM32实战七 数字滤波

    数字滤波是数据处理是常用、灵活、有效的方法。前面的按键程序已经用到了滤波,属于开关量滤波,这里要讨论....
    发表于 01-12 17:28 74次 阅读
    STM32实战七 数字滤波

    i.MX6ULL开发板源码自制交叉编译器

    文章基于HD-IMX6ULL-MB 系列开发板测试验证,该开发板由武汉芯路遥科技有限公司与武汉万象奥....
    的头像 武汉万象奥科 发表于 12-29 19:05 82次 阅读
    i.MX6ULL开发板源码自制交叉编译器

    i.MX6ULL开发板-Buildroot制作交叉编译器

    前言文章基于HD-IMX6ULL-MB系列开发板测试验证,该开发板由武汉芯路遥科技有限公司与武汉万象....
    的头像 武汉万象奥科 发表于 12-29 19:02 61次 阅读
    i.MX6ULL开发板-Buildroot制作交叉编译器

    (转)STM32CubeMX教程之简介及基本使用

    |本文转自:STM32CubeMX教程之简介及基本使用 - 嵌入式开发爱好者 - CSDN博客 ht....
    发表于 12-27 18:47 118次 阅读
    (转)STM32CubeMX教程之简介及基本使用

    STM32嵌入式实现智能家居控制系统

    本文将讲述如何用STM32嵌入式实现智能家居控制系统,所谓智能就是实时监测自主控制一些因素,如,温度....
    发表于 12-24 19:38 117次 阅读
    STM32嵌入式实现智能家居控制系统

    STM32串口卡死问题

    本次遇到的问题是USART串口发送函数卡死程序,究其原因原来是串口发送函数中的发送空寄存器没有置位,....
    发表于 12-24 19:00 148次 阅读
    STM32串口卡死问题

    大学如何自学嵌入式开发?

    我2011年就开始从事嵌入式软件开发。很多人觉得学习嵌入式开发比高考还难,不知道怎么入门?要学哪些东....
    发表于 12-23 19:48 113次 阅读
    大学如何自学嵌入式开发?

    【STM32单片机学习】第六课:STM32的中断体系和FSMC控制LCD

    【朱老师课程总结】第一部分、章节目录3.7.1.STM32的NVIC和起始代码中的ISR3.7.2.....
    发表于 12-22 19:06 108次 阅读
    【STM32单片机学习】第六课:STM32的中断体系和FSMC控制LCD

    RISC-V MCU开发实战 (二):SD初应用

    RISC-V MCU开发实战 (二):SD初应用软件平台 :MounRiver Studio(MRS....
    发表于 12-20 19:05 115次 阅读
    RISC-V MCU开发实战 (二):SD初应用

    i.MX6ULL开发板源码编译

    版权归作者所有,任何形式转载请联系作者。 作者:武汉万象奥科(来自豆瓣) 来源:https://ww....
    的头像 武汉万象奥科 发表于 12-16 15:57 30次 阅读
    i.MX6ULL开发板源码编译

    Stm32入门——Systick定时器

    Stm32入门——Systick定时器Systick定时器是什么?从原理上来说,Systick定时器....
    发表于 12-07 17:51 193次 阅读
    Stm32入门——Systick定时器

    电子技术经典资料汇总:嵌入式开发

    电子技术经典资料汇总:嵌入式开发
    发表于 12-05 12:06 217次 阅读
    电子技术经典资料汇总:嵌入式开发

    [嵌入式开发模块]AD转换芯片ADS8344驱动模块

    自己写的,AD转换芯片—ADS8344的驱动模块
    发表于 12-04 20:36 246次 阅读
    [嵌入式开发模块]AD转换芯片ADS8344驱动模块

    【STC单片机学习】第十七课:LCD1602显示器

    【朱老师课程总结 侵删】第一部分、章节目录第二部分、章节介绍1.17.1_2.LCD显示器相关背景1....
    发表于 12-04 10:06 138次 阅读
    【STC单片机学习】第十七课:LCD1602显示器

    机械转嵌入式需要学哪些东西?

    告诉你一个残酷的现实,即便告诉你学习方法和路径,能坚持下来的也寥寥无几。除此以外,还有学习过程中的突....
    发表于 11-25 14:36 143次 阅读
    机械转嵌入式需要学哪些东西?

    【STC单片机学习】高级外设和项目篇一:温度传感器DS18B20

    【朱老师课程总结 侵删】第一部分、章节目录2.1.1.DS18B20相关背景知识12.1.2.DS1....
    发表于 11-24 19:36 101次 阅读
    【STC单片机学习】高级外设和项目篇一:温度传感器DS18B20

    STM32F103学习笔记-中断与中断的控制

    本笔记从中断的定义入手,对中断的种类、作用和配置的思路进行了大致的阐述。由于水平不高,若有错误,还恳....
    发表于 11-24 17:21 106次 阅读
    STM32F103学习笔记-中断与中断的控制

    【STM32单片机学习】第五课:STM32标准外设库(SPL 库)

    第一部分、章节目录3.5.1.为什么会有标准外设库3.5.2_3.外设库的结构介绍和之后的学习方法1....
    发表于 11-23 18:21 141次 阅读
    【STM32单片机学习】第五课:STM32标准外设库(SPL 库)

    使用单片机非AD方式实现温度测测量

    最近在一个新的开发项目中,因一个需要一个简小的外联功能模块,考虑到体积尺寸和单一的功能需求,故而思琢....
    发表于 11-23 17:36 66次 阅读
    使用单片机非AD方式实现温度测测量

    使用单片机非AD方式实现温度测测量

    最近在一个新的开发项目中,因一个需要一个简小的外联功能模块,考虑到体积尺寸和单一的功能需求,故而思琢....
    发表于 11-23 17:36 68次 阅读
    使用单片机非AD方式实现温度测测量

    基于STC89C52RC开发板的嵌入式交叉编译环境的搭建

    交叉编译环境的搭建主要分为两部分,一个是PC上的编译环境,另一个是将文件烧入板子的软件。此处前者使用....
    发表于 11-23 17:21 125次 阅读
    基于STC89C52RC开发板的嵌入式交叉编译环境的搭建

    缺什么知识就补什么知识

                                                      ....
    发表于 11-22 10:06 142次 阅读
    缺什么知识就补什么知识

    电子工程师资料合集2.38G,学嵌入式不可错过

    《电子工程师资料合集》有哪些内容?主要有十五个分类内容,共2.38G,如下:1.元器件基础知识2.电....
    发表于 11-21 20:06 218次 阅读
    电子工程师资料合集2.38G,学嵌入式不可错过

    武汉万象奥科:嵌入式开发的三种方案!

    嵌入式开发是指利用分立元件或集成器件进行电路设计、结构设计,再进行软件编程(通常是高级语言),实验,....
    的头像 武汉万象奥科 发表于 11-19 17:47 79次 阅读
    武汉万象奥科:嵌入式开发的三种方案!

    【STM32单片机学习】第一课:STM32那些你该知道的事儿

    【朱老师课程总结 侵删】第一部分、章节目录3.1.1.STM32的来历背景13.1.2_3.STM3....
    发表于 11-15 20:21 123次 阅读
    【STM32单片机学习】第一课:STM32那些你该知道的事儿

    十速单片机学习归纳总结(三):代码编写的前期准备

    注:该文章中所讲述内容均是在VSCode编辑器中操作!在正式编写业务代码之前,需要先搭建好整体框架,....
    发表于 11-14 15:36 99次 阅读
    十速单片机学习归纳总结(三):代码编写的前期准备

    十速单片机学习归纳总结(五):呼吸灯实验

    前言这篇文章用来记录呼吸灯实验的设计思路并进行经验的归纳总结源代码main.h文件#ifndef _....
    发表于 11-14 11:06 116次 阅读
    十速单片机学习归纳总结(五):呼吸灯实验

    十速单片机的学习归纳和总结(一):单片机基础知识

    利用十速的C5178B单片机做嵌入式开发需要用到的软件有:VSCode编辑器用来编写程序Keil C....
    发表于 11-13 14:51 266次 阅读
    十速单片机的学习归纳和总结(一):单片机基础知识

    单片机ADC温度采集原理

    以上拉电阻形式为例:据分压公式有:若 ADC 采集精度为 Nbit;则 VCC 即对应的满量程 AD....
    发表于 11-10 20:20 206次 阅读
    单片机ADC温度采集原理

    源码公开!基于C6678+Zynq-7045的目标追踪视觉方案分享

    随着现代科技的高速发展,机器视觉技术在无人机、安防监控、工业检测、ADAS高级驾驶辅助系统、医疗诊断....
    的头像 Tronlong创龙科技 发表于 11-09 10:43 127次 阅读
    源码公开!基于C6678+Zynq-7045的目标追踪视觉方案分享

    如何编写有利于编译器优化的代码

    对于嵌入式系统,最终代码的体积和效率取决于由编译器生成的可执行代码,而非开发人员编写的源代码;但是源....
    发表于 11-09 10:31 877次 阅读
    如何编写有利于编译器优化的代码

    全国大学生嵌入式与系统设计竞赛:广和通队伍摘得一等奖

    为加强培养更多嵌入式芯片与系统设计应用高校人才,10月29-31日,由中国电子学会组织,东南大学、南....
    的头像 Fibocom小通 发表于 11-08 17:27 79次 阅读
    全国大学生嵌入式与系统设计竞赛:广和通队伍摘得一等奖

    基于51单片机的电子钟设计

    基于51单片机的电子钟设计设计要求:(1) 电源采用12V电池供电;(2) 采用MCS-51单片机控....
    发表于 11-04 19:51 261次 阅读
    基于51单片机的电子钟设计

    IAR Systems推出用于在CI/CD环境中进行高效构建和测试的跨平台构建工具

    IAR全新的面向 Arm 的构建 (Build) 工具赋能用户在 Ubuntu、RedHat 或 W....
    发表于 11-04 17:22 790次 阅读
    IAR Systems推出用于在CI/CD环境中进行高效构建和测试的跨平台构建工具

    嵌入式设备的发展:解决复杂的设计挑战

    在物联网之前,嵌入式设备曾经相对简单易用。设备,工业控制器或环境传感器的设计者只需要连接输入信号,与....
    发表于 11-03 19:51 61次 阅读
    嵌入式设备的发展:解决复杂的设计挑战