嵌入式linux书籍 适合初学者的linux开发板
- 开发语言
- 2023-08-13
- 75
如何学习嵌入式linuxstm32确实是一个瓶颈。而且现在毕业的相关专业的学生越来越多,stm32的技术门槛和知识点确实相对容易掌握。那么在主流的电子行业对嵌入式的需求...
如何学习嵌入式linux
stm32确实是一个瓶颈。而且现在毕业的相关专业的学生越来越多,stm32的技术门槛和知识点确实相对容易掌握。那么在主流的电子行业对嵌入式的需求是比较大的。主要是在于Linux的广泛运行。哪怕是安卓系统也是可以运行在Linux相同的电路开发板上的。
开发板的话就不好推荐了,有点像广告了。
学习Linux分为两个大方向,底层驱动和上层运用,这也是操作系统的特点。底层涉及驱动系列,对于硬件有比较直接的相关性。而应用几乎和硬件没他大的关系,主要掌握的是如何使用Linux操作系统,涉及各种指令,可以看很多Linux运用的书籍。进而写一些基于LinuxGCC的程序来熟悉这个。可以玩一玩树莓派板子,这个资料比较多,可玩性,掌握知识是很有帮助的。最近出了新版的,可以备一个用来学习Linux。
而底层是比较枯燥的,需要投入比较多。主要是驱动层比较难,所以需求很多,不愁找不到工作。仅仅会单片机已经确实不太有很大的竞争力了。底层需要掌握很多知识,随便去买一个比较流行的开发板就行了,主要是资料多,不懂的好找到人来问。否则自己一个人遇到卡壳的就很慢了。可以看看原子的,stm32你应该知道他很出名,打算出Linux开发板了。
我目前只会各类单片机及电路板的设计,当然也自学了服务器后端的简单使用,以及网站前端开发,AndroidAPP开发,IOS还没怎么学,时间不那么丰富。你趁着毕业前三年的业余时间,学习一下是很不错的,时间相对多一点,但是也需要靠自觉性,毕竟你的同事可能都在打游戏,你能坚持走下去吗?
技术工作是非常枯燥的,希望你能有找到自己的方向,多积累,多思考。
学好嵌入式必须要学的课程有什么比如c
感谢邀请。
这个问题相信是困扰所有嵌入式初学者的难题,
下面课内容是嵌入式学习必学的:C语言;C++;操作系统;计算机组成原理;linux编程;51单片机;arm;硬件编程语言(FPGA);模拟电路&数字电路。
1、cc++语言,这是计算机行业的必修课,必须找扎实实学好,可以安装turboc编译器为开发环境,联系C语言编程;安装vc++6.0学习C++编程。
2、操作系统,先在电脑上安装一个vmwareworkstation,然后在vmwareworkstation里安装一个linux(redhat企业版)虚拟机。学习一下操作系统的基本原理,熟悉linux环境下的开发环境,然后你就可以照着《自己动手写操作系统》写个操作系统试试。
3、计算机组成原理,熟悉计算机的基本原理,看看一个计算机的基本组成及软件在里面是如何跑的。
4、《unix/linux编程实践教程》可以说是linux编程的必修课,很不错的一本书,初学嵌入式的朋友可以看看。
5、单片机,其实就是一台电脑,像现在的汽车控制、led控制、屏幕亮光程度控制,它都可以实现,自己买块开发板弄一下,你能学到很多的别人学不到的。
6、arm,现在流行的微机,说白了就是32位的单片机,还可以跑操作系统哦,自己想办法移植一个操作系统上去吧
7、硬件编程语言(FPGA),芯片到底是怎么做成的,学习这门课,你就知道了
8、模拟电路&数字电路,硬件的基础,如果可以的话,学习下protel,自己做个硬件pcb板试试。
计算机这行都是偏向于实践的课程,所以要注重动手能力,
学习嵌入式这基本课程的时候,你可以按照这样的顺序来学习:
1:C语言、计算机组成原理、模拟电路&数字电路
2:汇编语言、单片机、操作系统、C++
3:硬件编程语言、arm
嵌入式开发大抵分四个方向,硬件、驱动、内核、应用,如果是希望向嵌入式软件方向发展的话,目前常见的是
嵌入式Linux+ARM方向,关于这个方向,大概分3个阶段:
1、嵌入式linux上层应用,包括QT的GUI开发
2、嵌入式linux系统开发
3、嵌入式linux驱动开发嵌入式目前主要面向的几个操作系统是,LINUX,WINCE、VxWorks等等Linux是开源免费的,而且其源代码是开放的,更加适合我们学习嵌入式。
自学的话你可以尝试以下路线:
(1)C语言是所有编程语言中的强者,单片机、DSP、类似ARM的种种芯片的编程都可以用C语言搞定),因此必须非常熟练的掌握。推荐书籍:谭浩强的很不错,《TheCProgrammingLanguage》这本经典的教材是老外写的,也有中译版本。
(2)操作系统原理,是必需的,如果你是计算机专业毕业那也就无所谓了,如果是非计算机专业的就必须找一本比较浅显的计算机原理书籍看一看,把啥叫“进程”“线程”“系统调度”等等基本问题搞清楚。
(3)Linux操作系统就是用C语言编写的,所以你也应该先学习下Linux方面的编程,只有你会应用了,才能近一步去了解其内核的精髓。推荐书籍:《UNIX环境高级编程》(第2版)
(4)了解ARM的架构,原理,以及其汇编指令,我们在嵌入式开发中,一般很少去写汇编,但是起码的要求是能够看懂arm汇编。
(5)系统移植的时候,就需要你从下层的bootloader开始,然后内核移植,文件系统移植等。而移植这部分对硬件的依赖是非常大的,其配置步骤也相对复杂,也没有太多详细资料。
(6)驱动开发linux驱动程序设计既是个极富有挑战性的领域,又是一个博大精深的内容。linux驱动程序设计本质是属于linux内核编程范畴的,因而是对linux内核和内核编程是有要求的。在学习前你要想了解linux内核的组成,因为每一部分要详细研究的话足够可以扩展成一本厚书。
给大家把一个嵌入式开发学习大方面的学习框架搭出来了
。最后呢祝大家能够在学习的路上马到成功。
学嵌入式软件,电脑要必备什么软件来学
一、定义嵌入式技术就是"专用"计算机技术,这个专用,是指针对某个特定的应用,如针对网络、针对通信、针对音频、针对视频,针对工业控制等,从学术的角度,嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统,它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成。二、分层嵌入式系统分为4层,硬件层、驱动层、操作系统层和应用层。1、硬件层,是整个嵌入式系统的根本,如果现在单片机及接口这块很熟悉,并且能用C和汇编语言来编程的话,从嵌入式系统的硬件层走起来相对容易,硬件层也是驱动层的基础,一个优秀的驱动工程师是要能够看懂硬件的电路图和自行完成CPLD的逻辑设计的,同时还要对操作系统内核及其调度性相当的熟悉的。但硬件平台是基础,增值还要靠软件。硬件层比较适合于,电子、通信、自动化、机电一体、信息工程类专业的人来搞,需要掌握的专业基础知识有,单片机原理及接口技术、微机原理及接口技术、C语言。2、驱动层,这部分比较难,驱动工程师不仅要能看懂电路图还要能对操作系统内核十分的精通,以便其所写的驱动程序在系统调用时,不会独占操作系统时间片,而导至其它任务不能动行,不懂操作系统内核架构和实时调度性,没有良好的驱动编写风格,按大多数书上所说添加的驱动的方式,很多人都能做到,但可能连个初级的驱动工程师的水平都达不到,这样所写的驱动在应用调用时就如同windows下我们打开一个程序运行后,再打开一个程序时,要不就是中断以前的程序,要不就是等上一会才能运行后来打开的程序。想做个好的驱动人员没有三、四年功底,操作系统内核不研究上几编,不是太容易成功的,但其工资在嵌入式系统四层中可是最高的。驱动层比较适合于电子、通信、自动化、机电一体、信息工程类专业尤其是计算机偏体系结构类专业的人来搞,除硬件层所具备的基础学科外,还要对数据结构与算法、操作系统原理、编译原理都要十分精通了解。3、操作系统层,对于操作系统层目前可能只能说是简单的移植,而很少有人来自已写操作系统,或者写出缺胳膊少腿的操作系统来,这部分工作大都由驱动工程师来完成。操作系统是负责系统任务的调试、磁盘和文件的管理,而嵌入式系统的实时性十分重要。据说,XP操作系统是微软投入300人用两年时间才搞定的,总时工时是600人年,中科院软件所自己的女娲Hopen操作系统估计也得花遇几百人年才能搞定。因此这部分工作相对来讲没有太大意义。4、应用层,相对来讲较为容易的,如果会在windows下如何进行编程接口函数调用,到操作系统下只是编译和开发环境有相应的变化而已。如果涉及Jave方面的编程也是如此的。嵌入式系统中涉及算法的由专业算法的人来处理的,不必归结到嵌入式系统范畴内。但如果涉及嵌入式系统下面嵌入式数据库、基于嵌入式系统的网络编程和基于某此应用层面的协议应用开发(比如基于SIP、H.323、Astrisk)方面又较为复杂,并且有难度了。
想自学嵌入式,需要学什么东西呢
很多对嵌入式开发感兴趣,想从事这个嵌入式开发的朋友,都会有疑问,学嵌入式要哪些基础,要学习哪里东西。学完能做什么?
又因为嵌入式包含单片机开发,linux开发,这里就以单片机为参考,和大家一起交流说明下。
首先学单片机的职业发展方向:单片机硬件工程师
工作内容:从事单片机软件开发,外围器件驱动,主要使用C语言。代码调试。
单片机软件工程师
工作内容:单片机外围器件的选型,原理图设计,PCB设计,样机焊接与调试。主要使用EDA软件如AD/protel99/pads等。
学单片机软件开发的基础:1,C语言,这个是最根本的基础知识,当前单片机的开发主要是还是在用c语言,很多人就问,在学校学的汇编,要学精通吗?我只想说,现在必须用汇编写代码的单片机会越来越少,所以你仔细品一品。
在开发环境权利,Keil或者IAR编译环境都可以编写代码,但用的多的还主要是keil,同时开发环境的搭建和使用也是需要掌握的。
包括新建工程的步骤,如何设置工程中.h.c文件的调用关系和文件框架。实际上单片机工程文件不可能很简单,好的工程文件框架对于编写代码和梳理有很大的作用。
2,基本的模拟电路的知识点要理解,高低电平对应的0101的概念。电压电流电阻常规的概念要明白,简单的LED驱动电路,按键电路等简单的电路得明白,模拟电路一点不会,在编程过程中会很抓瞎。
3,单片机基本概念掌握,最简单的单片机最小系统要了解,单片机正常工作所需要的
学完单片机能做什么产品。
学单片机硬件开发的基础。1,硬件开发,必须掌握模拟电路,这个是硬件开发的根本基础知识,硬件开发工程师职业发展好不好,首先得看这个掌握的程度如何。三极管NPN/PNP放大分析。几种运算放大器的运用,同相比较器。差分放大电路等经典电路要掌握在胸。
2,EDA软件要掌握,硬件工程师的必备软件工具,常用pads/DXP/protel99/AD,设计原理图和PCB图的必须工具。
3,常见工具要会用,电烙铁焊接一些贴片的器件要能轻松自如,万用表,示波器都是在调试硬件电路板时候必须用到的工具。
总结单片机的基础课程其实不多,但每一门学精确要花费大量的时间,以及项目实际经验总结才能成为大牛。
谁可以分享一下linux的学习资料
1.学习嵌入式首先要确保自己的c语言是过关的,c语言不过关说什么都是空谈,学习c语言推荐的书籍是《c和指针》2.之后慢慢学习数据结构和一些算法上的,然后通过c语言来实现这些例子,比如说:《算法:C语言实现》
3.在学习c语言和算法的过程尽量是通过在Linux上上机和实验,这个时候你就慢慢熟悉了Linux的基本操作和一些概念,前面的学完了就开始学习《UNIX环境高级编程》,《unix网络编程》,熟悉进程通信,内存管理,系统调用这些概念,并且通过编程来实践,看别人的源码,并且把你的想法加进去,修改这些例子。
4.再深入的话就是《LINUX设备驱动程序》,《深入理解计算机系统》认真研读。
整体来说嵌入式开发体系很膨大,几本书只能领你入门,“最重要,最重要,最重要”的是自学一些基础之后,找一个相关的工作才能真正地踏入开发的大门,并且根据自己兴趣学习下去。
有没有好的关于嵌入式Linux方面的书籍
给你推荐个嵌入式Linux图书大合集吧,可以说是很全面了。
1.嵌入式Linux系统与驱动开发图书28部
2.嵌入式Linux应用开发图书35部
我这整理的有。感兴趣的可以私信回复:程序员
找我领取
本文链接:http://www.xinin56.com/kaifa/8506.html