复旦微PSOC运行Linux测试串口

目录

制作工程

制作启动文件

烧写程序

更新镜像

更新文件系统

测试串口


制作工程

vivado上构建工程,添加Zynq和三个16550串口,串口的中断通过concat连接Zynq。

 Zynq中配置SD卡和以太网。SD卡接口在硬件上连接EMMC,存放BOOT.bin和image.ub。以太网用来传输文件。

 综合实现后,找到{prj_name}\{prj_name}.srcs\sources_1\bd\{bd_name}\ {bd_name}.bd和{prj_name}\{prj_name}.srcs\sources_1\bd\{bd_name}\ip\{bd_name}_processing_system7_0_0\{bd_name}_processing_system7_0_0.xci,导入Procise。

如果成功导入Procise,会自动弹出iar生成选项,选择FSBL和DeviceTree。FSBL用于生成第一阶段引导程序,DeviceTree用于制作Linux所需设备树。

制作启动文件

开启虚拟机,配置SDK环境。将vivado生成的{prj_name}\{prj_name}.sdk\{prj_name_wrapper}.hdf和iar生成的DeviceTree放入虚拟机。hdf用于生成设备树的PL部分,DeviceTree用于生成设备树的PS部分。

sudo su
cd FMQL-Linux-SDK
source env.sh

/*制作dtb*/
./build.sh --hw /home/{user_name}/DeviceTree/ --hdf home/{user_name}/{prj_name_wrapper}.hdf dtb

/*制作u-boot*/
cd u-boot
make fmql_common_defconfig
make EXT_DTB=../images/system-top.dtb -j4

/*制作zImage*/
cd linux
make fmsh_fmql_defconfig
make -j4 

/*制作image.ub*/
./build.sh image

将生成的u-boot增加后缀elf。再与iar生成的FSBL.out、vivado生成的bit文件通过Procise整合成为BOOT.bin。

在制作zImage时,Linux内核中添加16550串口驱动,增加串口挂载点数量。

烧写程序

第一次烧写要通过仿真器,后续可以通过网络的方式。仿真器烧写较为简单,在此介绍网络烧写。将BOOT.bin和image.ub放入tftp文件夹。首先将BOOT.bin通过网络放入内存,然后探测EMMC,擦除EMMC,最后将内存中存放的BOOT.bin写入EMMC。注意此时会重置启动参数。

tftp 0x2000000 BOOT.bin
sf probe
sf erase 0x0 0x7f0000
sf write 0x2000000 0x0 

烧写完成后要启动Linux,第一次通过网络启动,为EMMC进行分区。FAT分区存放image.ub,EXT分区存放rootfs。

更新镜像

更新image.ub时,首先通过网络启动备用image,备用image中的linux内核包含网口等驱动。通过网络挂载的方式将虚拟机中image.ub放入FAT分区。网络挂载前,要保证虚拟机与芯片通信正常。如果ping不通,虚拟机设置桥接,虚拟网络编辑器选出vmnet0,选中主机网卡。

tftp 0x2000000 image.ub
bootm 0x2000000
ifconfig eth0 192.168.0.50 up
mkdir -p /mnt/nfs /mnt/fat
mount -t nfs -o nolock 192.168.0.200:/mnt/nfs /mnt/nfs
mount -t vfat /dev/mmcblk0p1 /mnt/fat/
cd /mnt/fat/
cp /mnt/nfs/image.ub .

更新文件系统

更新rootfs时,同样要通过网络启动备用image,然后将EXT分区内容全部删除。通过网络挂载的方式将虚拟机中rootfs.cpio放入EXT分区。解压后放入备份文件。

tftp 0x2000000 image.ub
bootm 0x2000000
ifconfig eth0 192.168.0.50 up
mkdir -p /mnt/nfs /mnt/ext
mount -t nfs -o nolock 192.168.0.200:/mnt/nfs /mnt/nfs
mount /dev/mmcblk0p2 /mnt/ext/
cd /mnt/ext/
/*注意备份*/
rm -rf *
cp /mnt/nfs/backup_014/rootfs.cpio .
cpio -idmv < rootfs.cpio

测试串口

设置串口,默认不校验,需要校验要开启parenb。奇校验开启parodd,偶校验禁用奇校验-parodd。

stty -F /dev/ttyPS2 ispeed 115200 ospeed 115200 cs8

stty -F /dev/ttyPS2 ispeed 500000 ospeed 500000 cs8 parenb parodd   

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值