【原创】Linux学习规划
1赞前言:
本来今晚打算动手做点东西,但是想了一下,不应该直接一头扎入细节,而应该首先为近期的学习制定一个目标和计划,使学习的脉络更加清晰,分享出来的东西也更具参考价值。
对Linux的垂涎追溯到读书的时候,可惜一直停留在书本,没有正儿八经地做过开发,工作后才稍微接触一点开发,也没持续多久就离职了。基于Zynq的Linux系统早在2014年初就已经移植成功,并为上家公司做了一些基于uboot和Linux的开发,当时并没有及时的做记录,电脑上的各种环境现在也没了,还需要重新做一遍。以前还没有研究过的设备驱动开发,是近期的主要学习目标。
Linux学习规划如下,欢迎各种批评和建议。
学习目标:
Linux设备驱动开发入门
学习过程:
搭建基于Zynq的Linux开发环境,为后续的驱动和应用程序开发做基础。大致浏览了网上的资料,Zynq Linux开发大致可分为以下几个步骤:
1、硬件:利用Vivado设计硬件,生成bitstream。
2、软件:
a) 安装Linux操作系统,虚拟机或者直接安装
b) 安装交叉编译工具
c) 创建uboot.bin(FSBL.elf、bitstream、uboot.elf)
d) 编译Linux内核
e) 运行Linux
------------------------至此,Linux开发环境搭建完毕-------------------------
f) 驱动GPIO(switch、led)
g) 驱动oled
h) 在PL中加入自主IP核,并为之编写驱动程序(进一步学习和修改dts文件)
至此,设备驱动可以先放一放,建立下一个学习目标:基于所开发的驱动进行应用程序开发。
学习笔记:
虽然网上已经有很多资料,手头也有Digilent的Guideline,还是打算把每个步骤尽可能地记录到博客上,最重要的是记录学习过程中碰到的问题和解决方法,同时也是对自己生活的一种记录。
后续学习:
到时候再结合具体情况划分优先级。
1)应用程序开发学习
2)块设备驱动程序、应用程序开发学习
3)网络设备驱动程序、应用程序开发学习
4)Linux系统裁剪、移植