使用xilinx SDK创建ucosii工程

基于ZynqDesign.sdk建立ucosii工程和fsbl工程,并融合生成BOOT.bin文件

一、建立ucosii_test工程

1、打开xillinx SDK软件,File/Switch Workspace打开对应的ZynqDesign.sdk;

2、打开Xilix Tools/Respositories,添加ucosii内核;

3、新建工程 工程名为ucosii_test

 打开 File/New/Application Project,在弹出的对话框中填写对应的内容,需要注意的是,OS Platform处要点开选择ucos操作系统。zynq7010有两个CPU内核,我们ucosii使用的是内核0。选择next就可以选择一个模板例程,我们可以选择ucosii-helloworld。

也可以直接跳过使用finish。

 

3.1 在ucos工程bsp包下,选中system.mss后点击右键,点击board support package settings,进入到板级支持库设置,选中
ps7_cortexa9_0,在如下图所示位置添加-g -mcpu=cortex-a9 -mfpu=vfpv3 -mfloat-abi=hard。

选中ucos,并作出如下图所示位置的更改

配置ucos 程序的ld 地址空间分配,在ld 文件中配置ARM0 运行的地址空间,如下图,此地址空间与ARM1 将要运行的地址空间不能冲突。

编译运行成功后会生成 .elf文件(ucosii_test.elf文件)

 

二、新建fsbl工程,为生成uboot文件创造条件:

    注意在新建fsbl工程中,OS Platform选择standlone裸机,next选项之后,选择fsbl工程即可。

1、 在fsbl的bsp包下,选中system.mss后点击右键,点击board support package settings,进入到板级支持库设置, 中添加-DUSE_AMP 编译选项。

 2、修改fsbl main.c,在fsbl 配置RAM1 核的起始运行地址。如下图:

代码说明:
#define CPU1_CATCH 0xfffffff0 :用来唤醒cpu1 运行地址的指针地址

#define APP_CPU1_ADDR 0x04000000 :cpu1 的DDR 起始地址在0x04000000 开始
0x04000000:u-boot.elf 的起始地址(Entry point address),通过readelf u-boot 查看,定
义在zynq-common.h 中
Xil_Out32(CPU1_CATCH, APP_CPU1_ADDR):向CPU1_CATCH 写入APP_CPU1_ADDR
#define sev() __asm__("sev"):定义一个宏,用来启动核1

三、制作uboot.bin

在fsbl工程界面,选中fsbl包的情况下,选中Create Boot Image

进入如下界面,需要添加ucosii_test.elf(这个是在xilinx SDK平台下生成的),和linux平台下的u-boot.elf,共同融合后才生成BOOT.bin,就可以烧写到板子上啦。 

顺序如下,点击Create Image即可生成BOOT.bin文件

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值