# FT2000AHK-VxWorks-6.9.4 **Repository Path**: lightnin-g/FT2000AHK-VxWorks-6.9.4 ## Basic Information - **Project Name**: FT2000AHK-VxWorks-6.9.4 - **Description**: 本项目是vxWorks6.9.4版本的 FT-2000AHK 参考板BSP源码。 可依此创建操作系统映像工程,编译生成vxWorks.bin,32位SMP模式。详细启动步骤请参考target.ref文件。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-10-12 - **Last Updated**: 2021-10-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README \" ft2000ahk/target.ref - 飞腾2000两核开发板描述文档 \"-------------------------------------------------------------------------------- 简介 FT-2000/2 是一款面向嵌入式装备和工业控制领域应用产品需求,具有低功耗、强实时、 高可靠、高安全等特点。1个处理器含2个核簇(Cluster)。主要技术特征如下: * 兼容ARM v8 64 位指令系统,兼容32 位指令 * 支持单精度、双精度浮点运算指令 * 支持向量处理指令 * 集成 32KB的一级数据 Cache * 集成 1MB的二级 Cache * 集成 1个 DDR3存储接口,频率 500MHz * 集成 1个 X8的 PCIE2.0接口,可以拆分成两个 X4接口 * 集成 2个 10/100/1000自适应以太网接口( RGMII) * 集成 1个局部总线接口( LBC) * 集成 1个 LPC接口 * 集成可编程中断控制器、 I2C接口、 串接口、 串SPI和 GPIO接口 等慢速接 \"-------------------------------------------------------------------------------- \"-------------------------------------------------------------------------------- VxWorks编译环境搭建 1. 更新源码 把本项目的源码按对应位置复制、替换到VxWorks6.9开发环境。(WIND_HOME代表安装根目录) 这些源码分两部分:BSP和库 BSP的路径是: \vxworks-6.9\target\config\ 库的根路径是:\vxworks-6.9\target\src\ 如果只更新BSP,可以直接用Workbench编译环境进行开发。 如果库的源文件有任何更新,则先编译库,再用Workbench开发。 2. 命令行编译库 库的运行模式有两种,SMP(Symmetrical Multi-Processing)和UP(Uni-Processing),简称多核和单核。 开发者首先确定用多核,还是单核模式,再做具体的步骤。 打开CMD命令窗口,设置开发环境: cd wrenv.exe -p vxworks-6.9 cd \vxworks-6.9\target\src (1)编译SMP库: make CPU=ARMARCH7 TOOL=diab VXBUILD=SMP 命令结束后,即完成\vxworks-6.9\target\lib_smp\库目录下的文件更新。 (2)编译UP库: make CPU=ARMARCH7 TOOL=diab 命令结束后,即完成\vxworks-6.9\target\lib\库目录下的文件更新。 补充说明:(a)在src下执行make,是编译整个库,花费时间最长。如果只更新了一个子目录,可以 cd 到子目录里, 再执行make命令,缩短编译时间。比如: cd \vxworks-6.9\target\src\arch\arm make CPU=ARMARCH7 TOOL=diab VXBUILD=SMP (b)清理某个库用clean目标,清理整个库用rclean目标,比如: make CPU=ARMARCH7 TOOL=diab rclean //清理整个UP库 make CPU=ARMARCH7 TOOL=diab //重新编译整个UP库 3. 图形化编译库 以上命令行编译库的方法,可以用Workbench工具的VxWorks Source Build(Kernel Library) Project菜单命令完全替代, 简称VSB工程。 只是VSB工程不会修改系统默认库 \vxworks-6.9\target\lib或lib_smp,而是在VSB工程 目录下保存新的库文件。新建VxWorks Image Project(简称VIP工程)时,要基于此VSB。 推荐使用图形化编译。 \"-------------------------------------------------------------------------------- VxWorks运行环境搭建 参考板使用uboot启动vxWorks操作系统。用bin格式的镜像,即默认文件名为vxWorks.bin 启动操作系统镜像的方法不止一种,有网络、USB盘、SATA硬盘等方式加载,用户选择方便的 一种即可。 1. 通过tftp网络加载镜像 Workbench集成开发环境编译后,默认生成 vxWorks 镜像文件,是ELF格式的。可以进一步指定 生成vxWorks.bin文件镜像,这里称作bin格式。 一般地,这两种格式,uboot都是可以加载运行的。 加载的过程和方法都是一样的,区别仅仅是内存基地址不同。 (1)对于bin格式,取基地址 0x80100000 (2)对于ELF格式,取基地址 0x90100000 uboot命令行里,0x前缀可以省略。 1.1 PC端设置 TFTP 服务器 PC机和参考板通过网口相连。在PC机上启动TFTP服务器,以windows系统为例,直接双击 \vxworks-6.9\host\x86-win32\bin\Tftpd32.exe 只需要设置 Current Directory 指向vxWorks.bin(或vxWorks)文件所在的路径即可,无其他设置。 1.2 参考板设置uboot环境变量 参考板和PC机通过TTL电平的3线UART串口连接。在PC机上打开终端软件(比如超级终端、TeraTerm等), 连接此串口,波特率设置为 115200,其他无需设置。上电,在终端软件中停止uboot的自动启动,在 uboot提示符中,输入如下命令: setenv ipaddr 192.168.3.119 setenv serverip 192.168.3.118 saveenv 1.3 下载操作系统镜像 (1)bin格式镜像: 在uboot里执行命令: tftpboot 0x80100000 vxWorks.bin (2)ELF格式镜像: 在uboot里执行命令: tftpboot 0x90100000 vxWorks 1.4启动操作系统镜像 (1)Uboot为2020年11月之前的版本时,通过boot32命令启动操作系统镜像: bin格式镜像:boot32 0x80100000 ELF格式镜像:boot32 0x90100000 (2)Uboot为2020年11月之后的版本时,通过go命令启动操作系统镜像: bin格式镜像:go 0x80100000 ELF格式镜像:go 0x90100000 (以下命令相同,仅以bin格式为例。用ELF格式时,只需要替换基地址和文件名即可,其他部分相同。) 2. 通过文件系统加载镜像 2.1 USB盘加载 把vxWorks.bin文件提前拷贝到FAT32格式的USB盘中,再把此盘插入参考板的USB口,上电,执行uboot命令: usb xhci start fatload usb 0 0x80100000 vxWorks.bin 2.2 FAT32硬盘加载 把vxWorks.bin文件提前拷贝到FAT32格式的硬盘中,再把此盘插入参考板的SATA口,上电,执行uboot命令: fatload scsi 0:1 0x80100000 vxWorks.bin 2.3 EXT4硬盘加载 把vxWorks.bin文件提前拷贝到ext4格式的硬盘中,再把此盘插入参考板的SATA口,上电,执行uboot命令: ext4load scsi 0:1 0x80100000 vxWorks.bin \"-------------------------------------------------------------------------------- 驱动描述 1. 参考板支持的硬件接口驱动列表: Hardware Interface | Controller | Driver/Component | Status | component ---------------------------------------------------------------------------------------------- UART:0 | NS16550 | vxbNs16550Sio.c | SUPPORTED | DRV_SIO_NS16550 UART:1 | NS16550 | vxbNs16550Sio.c | SUPPORTED | DRV_SIO_NS16550 10/100/1000MB-ETHERNET | FT GAMC | vxbFtGmacEnd.c | SUPPORTED | DRV_VXBEND_FTGMAC TIMER | generic timer | vxbArmv7GenTimer.c | SUPPORTED | DRV_ARM_GEN_SYS_TIMER TIMER | auxiliary timer | vxbArmv7AuxTimer.c | SUPPORTED | DRV_ARM_GEN_AUX_TIMER PCIe | FT pcie | vxbFtPcie.c | SUPPORTED | DRV_PCIBUS_FT USB | D720201 | XHCI | SUPPORTED | INCLUDE_USB_XHCI_HCD SATA | AHCI | vxbAhciStorage.c | SUPPORTED | INCLUDE_DRV_STORAGE_AHCI PHY | YT8521 | vxbYt8521Phy.c | SUPPORTED | INCLUDE_YT8521PHY PHY | AR803X | vxbAr803xPhy.c | SUPPORTED | INCLUDE_AR803XPHY I2C | FT I2C | vxbFtI2c.c | SUPPORTED | DRV_FTI2C RTC | DS1339 | vxbI2cRtc.c | SUPPORTED | INCLUDE_FT_RTC 从飞腾官方网站 https://www.phytium.com.cn/ 可以下载编程手册 << FT-2000A-2sV1.4.pdf >>, 用户需下载最新版。 2. 串口配置 两个 NS16550 UART 串口,默认配置为 \ts Baud Rate : 115200 Data : 8 bit Parity : None Stop : 1 bit Flow Control: None \te 3. 网络和MAC地址 网口是集成的 SOC GMACs 10/100/1000 MAC 和 PHY。 MAC地址格式: 98:0e:24:xx:xx:xx. 其中前三个字节 98:0e:24 代表飞腾公司。 MAC地址优先使用从MAC寄存器中读取的值, 如果地址是全0或全F,则使用sysLib.c文件中的sysGmacAddrSet函数随机分配MAC地址。 目前随机分配的MAC地址为00:00:3e:02:02:xx, 用户可以根据需要修改sysGmacAddrSet函数,更改MAC地址。 \ts `gmac0' | - Ethernet `gmac1' | - Ethernet \te vxWorks的ifconfig命令,不带参数时,可以查看网口信息。 配置IP地址时,可以用如下格式: -> ifconfig "gmac0 192.168.100.100 up" 4. 块设备文件系统 块设备USB/SATA 等设备,一般需要加载文件系统。 VxWorks 支持两种文件系统 dosFs 和 HRFS. 配置dosFs时,可能需要以下常用组件: \cs #define INCLUDE_DOSFS #define INCLUDE_DOSFS_MAIN #define INCLUDE_DOSFS_CHKDSK #define INCLUDE_DOSFS_FMT #define INCLUDE_DOSFS_FAT #define INCLUDE_DOSFS_SHOW #define INCLUDE_DOSFS_DIR_VFAT #define INCLUDE_DOSFS_DIR_FIXED #define INCLUDE_FS_MONITOR #define INCLUDE_FS_EVENT_UTIL #define INCLUDE_ERF #define INCLUDE_XBD #define INCLUDE_XBD_BLKDEV #define INCLUDE_XBD_TRANS #define INCLUDE_DEVICE_MANAGER #define INCLUDE_XBD_BLK_DEV #define INCLUDE_XBD_PART_LIB #define INCLUDE_DISK_UTIL \ce 格式化命令: \cs dosFsVolFormat ("NameOfTheBlockDevice", 0x20, 0); /@ FAT32 format @/ 或者 dosFsVolFormat ("NameOfTheBlockDevice", 0x10, 0); /@ FAT16 format @/ \ce 格式化后,可以用文件系统的相关命令,比如 \cs copy ("vxWorks", "NameOfTheBlockDevice/vxWorks"); pwd cd("/ata0:2") ls ll \ce devs 命令可以查看vxWorks系统添加的设备列表。比如: /tyCo/0 host: /ata0:1 /bd0 5. CPU 个数 宏 VX_SMP_NUM_CPUS 的值是SMP启动的核的个数。默认取最大值2,即所有核都启动。 可以在Workbench组件窗口中,修改此宏的值,选择启动的核数。 \"-------------------------------------------------------------------------------- 参考资源 \tb ARM Architecture Reference Manual \tb Wind River Workbench User's Guide \tb VxWorks Kernel Programmer's Guide \tb VxWorks Architecture Supplement \tb FT-2000A-2sV1.4.pdf \"-------------------------------------------------------------------------------- 已知问题列表 1. Workbench WDB调试连接SMP内核问题 现象:调试连接失败 由于workbench工具在建立连接过程中,会检查程序映像是否正确。由于SMP版本内核启动时, 动态修改了代码段内容,导致检查失败。 建议:根据此特点,在连接选项中禁用了此校验过程,只要用户保证映像正确,则不影响正常调试。 2. Workbench WDB连接IP地址问题 现象:系统启动后,用ifconfig "网口 IP地址" 命令修改了IP地址后,WDB连接失败。 建议:由于WDB组件初始化时就要获取IP地址,因此不要启动后再修改WDB用的IP地址。 在组件配置窗口里,修改 DEFAULT_BOOT_LINE 字符串里的IP地址,然后编译镜像。