ZYNQ移植vxworks6.9
步骤:
- 1.串口部分更改
- 2.网口部分更改
- 3.建立BSP工程,编译生成bootrom文件
- 4.建立镜像VIP工程,编译生成vxWorks文件
- 5.生成启动BOOT.bin文件
- 6.配置FTP服务器,启动vxWorks。
1. 串口部分更改
由于BSP默认支持UART1的输出,如果硬件是UART1的,只需要修改时钟就可以。硬件是UART0,需要做以下修改。
1)在hwconf.c文件中关于UART1的部分全部改完UART0
中断优先级gicPriority,
{ INT_VEC_UART0, 120 },
中断触发方式gicTrigger
{ INT_VEC_UART0, VXB_INTR_TRIG_LEVEL },
设备中断注册gicInputs
{ INT_VEC_UART0, "zynqSioDev", 0, 0 },
设备支持列表hcfDeviceList
{ "zynqSioDev", 0, VXB_BUSID_PLB, 0, zynqSioDev0Num, zynqSioDev0Resources },
2)修改串口时钟
在xlnx_zynq7k.h中的将时钟修改为100M
#define ZYNQ7K_UART_CLK (100000000)
在VIVADO的工程中可以查看是100M的时钟
2.网口部分更改
在hwconf.c文件中找到zynqGemDevResources,更改phy地址。
#ifdef DRV_VXBEND_ZYNQMAC
LOCAL struct hcfResource zynqGemDevResources[] = {
{ "regBase", HCF_RES_INT, {(void *)ZYNQ7K_GEM0_BASE} },
{ "phyAddr", HCF_RES_INT, {(void *)1} },
{ "isExPhy", HCF_RES_INT, {(void *)ZYNQ_MIO_RGMII} },
{ "clkSet", HCF_RES_ADDR, {(void *)sysZynq7kGemClkSet} },
# ifdef INCLUDE_SYS_MEM_MGMT
{ "ifCached", HCF_RES_ADDR, {(void *)ifMemCached} },
#endif /* INCLUDE_SYS_MEM_MGMT */
{ "miiIfName", HCF_RES_STRING, {(void *)"gem"} },
{ "miiIfUnit", HCF_RES_INT, {(void *)0} }
};
#define zynqGemDevNum NELEMENTS(zynqGemDevResources)
其中phyAddr后面对应的是PHY芯片的地址,这个跟硬件对应上。
3.建立BSP工程,编译生成bootrom文件
打开Workbench3.3选择,file->new->Wind River Workbench Project
选择wind River vxWorks6.9,,点击NEXT
选择boot loader/BSP Project,点击NEXT
输入工程名称,点击NEXT
选择BSP支持包,点击finish
在工程界面,点击BSP工程右键选择,“Rebuild Project”
编译生成bootrom文件,将bootrom文件重命名为bootrom.elf
4.建立镜像VIP工程
打开Workbench3.3选择,file->new->Wind River Workbench Project
选择wind River vxWorks6.9,,点击NEXT
选择system image,点击NEXT
输入工程名字,点击NEXT
选择BSP支持包,编译工具链,点击FINISH。
注意:BSP包需要保持和前面的BSP工程一致,
添加sehll命令:
双击镜像工程下的“kernel Configuration”,在右侧“Component”,“ctrl+f”输入shell,选择“file system shell commands”,进去之后鼠标右键选择“include”
在工程界面,点击BSP工程右键选择,“Rebuild Project”,生成vxWorks镜像文件。
5. 生成启动BOOT.bin文件
通过vivado工程导出的SDK,建立FSBL工程。
右键FSBL工程,选择“Create Boot Image”
选择BSP编译生成的bootrom.elf文件,选择boot.bin文件的存储路径。
烧录启动文件BOOT.bin
6.配置FTP服务器
在Windows右下角开始中寻找"Wind River"选择“FTP SERVER”
配置FTP服务器的用户名和密码
用户名和密码需要跟BSP中的config.h中“DEFAULT_BOOT_LINE”设置的一致。
#define DEFAULT_BOOT_LINE \
"gem(0,0)host:vxWorks h=192.168.0.20 e=192.168.0.50:ffffff00 u=vxworks pw=vxworks tn=xlnx_zynq7k"
设FTP服务器路径,该路径为镜像工程vxWorks的目录,设置完成点击“Done”