大家好,今天小编关注到一个比较有意思的话题,就是关于单片机学习linux的问题,于是小编就整理了3个相关介绍单片机学习Linux的解答,让我们一起看看吧。
如何从单片机转嵌入式linux编程?
首先要学linux系统,linux基本指令,多进程通信方式,多线程并发,socket编程,内核的裁剪与移植,内核模块化编程,三种设备驱动方式,多节点驱动,内核中断和内核定时器,基本函数接口像read、write,学会利用平台设备总线分为设备端和驱动端编写较大项目
Linux嵌入式编程分内核编程和和应用层编程两种。内核编程是写外设驱动或做网络报文处理。应用层编程就是写各种应用程序。这两种编程截然不同,即使是一个做了多年应用层编程的Linux开发者,想入门内核编程还是有一定难度的。
Linux编程的两大基本功:
一、英文。要能顺利阅读内核源代码。
二、C语言。要熟悉Linux下常用的库像pthread socket openssl等等。
如何学习嵌入式linux?
stm32确实是一个瓶颈。而且现在毕业的相关专业的学生越来越多,stm32的技术门槛和知识点确实相对容易掌握。那么在主流的电子行业对嵌入式的需求是比较大的。主要是在于Linux的广泛运行。哪怕是安卓系统也是可以运行在Linux相同的电路开发板上的。
开发板的话就不好推荐了,有点像广告了。
学习Linux分为两个大方向,底层驱动和上层运用,这也是操作系统的特点。底层涉及驱动系列,对于硬件有比较直接的相关性。而应用几乎和硬件没他大的关系,主要掌握的是如何使用Linux操作系统,涉及各种指令,可以看 很多Linux运用的书籍。进而写一些基于Linux GCC的程序来熟悉这个。可以玩一玩树莓派板子,这个资料比较多,可玩性,掌握知识是很有帮助的。最近出了新版的,可以备一个用来学习Linux。
而底层是比较枯燥的,需要投入比较多。主要是驱动层比较难,所以需求很多,不愁找不到工作。仅仅会单片机已经确实不太有很大的竞争力了。底层需要掌握很多知识,随便去买一个比较流行的开发板就行了,主要是资料多,不懂的好找到人来问。否则自己一个人遇到卡壳的就很慢了。可以看看原子的,stm32你应该知道他很出名,打算出Linux开发板了。
我目前只会各类单片机及电路板的设计,当然也自学了服务器后端的简单使用,以及网站前端开发,Android app开发,IOS还没怎么学,时间不那么丰富。你趁着毕业前三年的业余时间,学习一下是很不错的,时间相对多一点,但是也需要靠自觉性,毕竟你的同事可能都在打游戏,你能坚持走下去吗?
技术工作是非常枯燥的,希望你能有找到自己的方向,多积累,多思考。
嵌入式Linux其实范围很广,只以我个人经验简单说说。
我们简单的把嵌入式Linux开发工作分成几类:
Bootloader层开发
驱动层开发
应用程序开发
其中:
Bootloader层开发和Linux关系不太大,一般用汇编语言+C语言,更类似单片机开发
学完单片机,并且应用做过项目,想学ARM,linux应该走怎样的学习路线比较好?
做Linux开发的工作有很多种,总结来说有偏上层应用的,也有偏驱动开发的。
做上层应用就需要了解Linux系统不用了解太深,但是应用层的一些扩展要掌握,例如linux系统原理,进程线程、进程间通信、同步互斥等;也需要了解协议例如http、tcp/ip、https等;还需要了解数据库开发,和一些其他的组件。
做底层开发就是偏驱动开发了,这需要深入学习linux内核,熟悉arm芯片,学习内核移植,学习常用扩展的驱动程序的编写,基本都是内核态开发,上边提到的系统原理也是要学习的。Linux驱动开发学习任重道远,希望你能坚持下去。
到此,以上就是小编对于单片机学习linux的问题就介绍到这了,希望介绍关于单片机学习linux的3点解答对大家有用。