linux嵌入式自学党如何选择开发板以及学习方向

前提:自学党

在这个前提下,能找到的各种资料就仅限于店家给的,以及各个论坛上社区里大家共享的,部分底层的内容资料很少,也没人指点学习方向,甚至不知道自己学这玩意能干吗

常见的开源开发板

树莓派:树莓派其实不算是开源的开发板,博通的这个芯片,连个基本的手册都没有,就只有官方提供的一个系统。内核以及之下的开发,基本上是不可能了,仅限于在用户态写写应用啥的。

beaglebone black(TI的AM335x系列):

号称是开放的最好的linux开发板,主要是Ti手册全啊,大几千页的datasheet,官网直接下载。Ti给的SDK也一直都在更新,用的人也多

nanopi系列(全志H3 H5以及部分三星的片子):nanopi也整了好多好玩的开发板,比如我之前就在友善之臂买了一个基于
全志H3的NAS,里面是跑的openmedia系统,挂个USB转sata,然后做个人多媒体共享和BT做种下载,挺好玩的。nanopi的开发板有基于全志H3 H5的,也有基于三星从消费电子市场退下来的手机处理器,4412 6818之类的。

能够学到哪些东西

1.基本的linux组成(设备树、u-boot、内核、以及根文件系统),系统启动流程:基本的外设bring up,最小系统bring up等

2.物联网相关:这个主要是一些网络协议栈,这个可以在openwrt的系统基础上去学习,openwrt都有上面三个系列开发板的支持。网络协议栈在后面工作,特别是一些多芯片互联的应用场景非常有用,比如之前接触过得数字图传产品就是把自己封装成一个USB网卡,然后跟计算平台和飞行平台连在一起。

3.多媒体编解码相关:

这部分可以分两部分:软解和硬解;软解就是学习一下各种视频图片格式,然后熟悉libffmpeg的各种接口,安卓上好像是引入了OMX多媒体编解码框架;硬解,就是利用芯片内部的硬件编解码器对视频和图片进行编解码。硬件编解码算是个小众学习方向,几乎没啥资料怎么开放给个人。树莓派上有硬件编解码器,但是由于不开放内核以及手册源码等,就只能在libffmpeg库里面开启硬解这种曲线救国的方式去实现多媒体的硬编解码(似乎还要买license才能用)。Ti am335x不是为了多媒体领域用的,上面是没有视频硬编解码器的,有个GPU,但仅限于UI显示绘图之类的。全志H3 H5,网上有一个全志官方提供的库,可以利用这个库调用硬件编解码器的接口,没有细看具体实现,网上有人用它硬解H264然后合成OSD做监控显示的。全志算是少有的能提供硬件编解码器资料。三星4412 6818之类,硬件编解码性能强劲,但是无奈网上搜不到资料,对个人学习不友好。

4.驱动

个人学习会有点蛋疼,具体的驱动调试往往是适配一些新硬件,但个人爱好者接触到的外设往往内核已经支持很好了,移植适配往往就是改一下设备树,调一下IO引脚,难度相对较小。太复杂的外设,往往由于缺乏示波器、逻辑分析仪等设备的支持,也无从下手

迷茫

自学是好事,但又没什么应用方向支撑自己学习,甚至不知道这玩意学了什么时候能用上

 

 

 

 

 

 

你可能感兴趣的:(嵌入式linux学习方法)