本次演示是基于vivado 2018.3版本完成的。硬件是7020 512M DDR 7010与7020的arm a9核是相同的,可以直接参考自己的硬件进行创建自己的工程。
本次的原始工程文件连接在论坛中已经可以找到。下载并解压,使用其中的xilinx下的文件。
当前创建的threadx工程文件除了tx_initialize_low_level.S文件其余都是基于最新的6.1.9版本
1、 创建Vivado工程
我们创建一个名为Ailurus的工程:
一路Next
处理器选择:
到这里电机Finish即可.
2.配置ZYNQ处理器及其相关外设
创建新bd文件,使用默认名design_1。
点击+号,输入zynq, 提示zynq处理器双击:
我的硬件配置如此,自己可以根据自己的硬件进行配置即可
DDR 配置:
点击OK,确认,并如图所示连接:
我们电机下方红线处,验证我们的最小系统设计,如果没有问题进入下一步。
生成HDL 文件,再次点击Generate Output Products:
点击Generate Bitstream:
完成后,到处bit文件到xSDK中
方便后期的Petalinux等设计使用。
一定要勾选Include bitstream
启动SDK:
2、 创建ThreadX 链接库:
File->New->Other->Xilinx->Library Project
点击Next:
修改如红线处:
我们把从github上下载好的文件的threadx->common中的inc与src文件夹和 Port->cortex_a9->gnu中的inc与src文件夹内容全部拷贝到,当前工程的src文件夹中,
同时解压文件夹下的src目录下tx_initialize_low_level.S拷贝到当前工程的src文件夹下。
同时将下原文件夹中的common_file文件夹拷贝到工程文件夹下面:
工程文件夹下面文件:
这个时候我们点击编译,我们可以看到已经成功生成了libtx.a库文件:
3、 创建ThreadX例程:
File->New->Application Project,创建一个名为demo_threadx的工程,注意红线部分的选项:
第一次创建应用,我们选择基于当前的platform创建一个新的bsp。
选择Hello World:
我们首先编译当前的Hello World 确认无误后继续下一步:
图 27
4、 修改编译选项
添加common_file文件夹:
我们右键项目->New->Other->General->Floder->Next->Advance->Link To alternate location (Linkerd Floder)->Finish
这时候我们将HelloWorld.c文件修改为我们下载的demo中的demo_threadx.c文件并且编译:
出现error: tx_api.h: No such file or directory错误, 因为该文件在tx库工程中,我们在demo_threadx工程中添加对应的include文件夹以及对应的库的文件夹:
右键demo_threadx工程,
属性->C/C++ Build->Settings->ARM v7 Gcc compiler->Inferred Options->SoftWare Platform增减/tx/src文件夹:
C/C++ Build->Settings->ARM v7 Linker -> Libraries增减之前生成的tx库;
在C/C++ Build->Settings->ARM v7 Linker -> Inferred Options->SoftWare Platform中增加对应库的文件夹。
此时我们重新进行编译:
编译完成,进行一下测试:
右键工程,Debug As -> Debug Configurations->Xilinx C/C++ application (System Debuger)
至此,demo_threadx工程创建完毕:
<center>**图 35**</center>
其余的关于FileX、USBX、NetX的工程创建可以按照这个创建,他们都依赖于libtx.a库,
比如USBX,NetX等同时还依赖于FileX的库,NetX需要按照自己的phy芯片修改对应驱动,其余的就可以按照此例子在对应位置添加对应文件以及目录即可。
这是早些时候的测试版本:
<center>**图 36**</center>
网络测试: