"); //-->
查看支持的gcc 版本;
sudo apt-cache search aarch64
给系统传递参量的范例 , bootargs = "console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootwait";
2. 如果编译过程中出现异常 , 下一次编译的时候最好用 petalinux-build -x mrproper 来清除一下 ;
3. 编译完modules , 需要配置rootfs , 这之后有一个比较重要的步骤 , 就是 petalinux-build -x package 来生成系统编译需要的Kconfig文件 ;
4. makefile 中 常用的三个符号 ,$@--目标文件,$^--所有的依赖文件,$<--第一个依赖文件
5. 要操作DMA需要添加一个字符型的驱动 , 同时还需要更改设备树源文件 ;修改步骤如下 : https://blog.csdn.net/long_fly/article/details/80482248
amba_pl:amba_pl{
axidma_chrdev:axidma_chrdev@0{
compatible = "xlnx,axidma-chrdev";
dmas = <&axi_dma_0 0 &axi_dma_0 1> ;
dma-names = "tx_channel","rx_channel" ;
}
...
}
6. 问题描述 , build工程生成的SDK所需要的linux system root路径是哪里?
官方解答 ,
Run petalinux-build --sdk
Run petalinux-package --sysroot
This will generate sysroots in <plnx_proj>/images/linux/sdk/sysroots
7. petalinux-package --sysroot
8. 添加xilinx_axidma驱动的方法 , 都在这个网页里面了 ;
9. 新建一个petalinux工程
petalinux-create --type project --template zynqMP --name dprjdma 新建工程
petalinux-config --get-hw-description=./zcu102_top_hw_platform_0 获取工程相关的硬件信息
petalinux-config -c kernel 配置内核
petalinux-create -t modules --name mymodule --enable
dtc -I dts -O dtb -o system.dtb ./project-spec/meta-user/recipes-bsp/device-tree/files/system-top.dts //生成设备树的方法
petalinux-package --boot --fsbl zynq_fsbl.elf --fpga system.bit --boot-device sd --u-boot --force 用命令生成boot.bin
petalinux-package --boot --fsbl zynqmp_fsbl.elf --fpga system.bit --boot-device sd --u-boot --force --format BIN --pmufw ./pmufw.elf
10. petalinux生成device-tree的标准步骤
petalinux-config --get-hw-description=/home/ds/prj_glb/dprjdma/zcu102_top_hw_platform_0 获取工程相关的硬件信息
petalinux-build -c external-hdf 编译硬件资料
petalinux-build -b device-tree -x do_prepare_recipe_sysroot
petalinux-build -b device-tree 编译设备树
11. petalinux 支持从工程中打包启动linux需要的文件 , 命令如下
petalinux-package --prebuilt --help
12. 在SD卡中启动linux ,
a. 将BOOT.BIN和image.ub拷贝进SD卡的第一分区
b. 将rootfs.cpio拷贝进SD卡的第二分区,并且使用以下命令解压 sudo pax -rvf rootfs.cpio
13 .当仅仅需要修改根文件系统时,在petalinux工程目录下使用:
#假设app工程名为myapp
petalinux-build -c rootfs -x do_gen_sysroot
petalinux-build -c rootfs/myapp
LANG=C petalinux-build -x package
sudo picocom -b 115200 /dev/ttyUSB0 用picocom打开串口;
sudo tar xvf rootfs.tar.gz -C ./ 解压文件系统
mount -t nfs 192.168.3.178:/NFS /mnt/ -o nolock 挂载文件系统
14. 挂载将服务端的文件夹挂载到开发板的文件目录下
步骤 1. 安装 nfs-kernel-server , sudo apt-get install nfs-kernel-server , 一般这一步可以跳过, 安装petalinux的时候应该是安装了的 ;
2. 编辑 /etc/exports 文件, 增加如下内容
/home/ds/nfs_server *(rw,sync) #建立server端的共享目录
/mnt 192.168.3.150/255.255.255.0 (rw) #设置可以挂载的客户端IP
3. 重启服务端
sudo /etc/init.d/nfs-kernel-server restart 并用showmount -a 查看
4. 在客户端linux命令行输入挂载命令
mount -t nfs -o nolock 192.168.3.178:/home/ds/nfs_server /mnt
15 gcc编译带线程的函数需要加 gcc gpio-demo.c -lpthread
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。