第一阶段,主要是裸机使用,目前主要是这个阶段的学习和使用
1,熟悉VIVADO,熟悉SDK,学会新建工程,掌握基本调试方法和工具的使用,掌握在SDK端生成固化程序并进行固化操作;
2,熟悉GPIO的应用,熟悉BSP板级开发包的API函数,通过该API函数调试GPIO口的使用;
3,熟悉ZYNQ的中断机制,通过BSP的API函数,调试CPU私有定时器外设;
通过2和3的调试,基本掌握板级开发包的使用套路,方便以后在使用到相关外设的时候能够快速掌握和使用;
4,数据ZYNQ上的PL与PS端的交互,通过增加一个PL端GPIO的IP,然后设计使用PS端核心去控制PL端GPIO输出操作实现;
5,学习QSPI对FLASH的编程,掌握程序如何写入到FLASH,如何从FLASH中搬运到内存;
6,分析ZYNQ的启动相关流程,解析启动文件格式,分析启动过程中核心对内存的需求和程序的存放和使用;
通过5和6的学习,分析ZYNQ的加载流程,设计一个合适的远程加载策略;
7,学习ZYNQ中的DMA的使用,掌握内存在AXI总线中如何实行搬运;
8,学习ZYNQ中的以太网的使用,通过学习LWIP协议栈如何移植和如何使用;(有必要的话可以使用网卡进行远程加载)
9,学习ZYNQ中的VDMA的使用,为后续图像处理项目做技术储备;
10,掌握裸机上的AMP双核交互,设计双核交互流程;
11,掌握裸机上的内存管理和内存分配,建立良好的内存使用分配策略;
12,建立裸机上的界面设计,为后续的需要屏幕GUI的项目做技术储备;
第二阶段,搭载Linux系统到arm上,使用操作系统去实现系统管理等任务
完成第一阶段学习以后看项目需求而定。