ZedBoard上的点灯签名实验(三)linux内核引导

经过实验一和实验二我们完成了硬件部分的工作,并且将设计导出到sdk, 现在我们希望linux可以到我们的硬件上运行,为此我们需要给linux一个提示并且告诉它入口在哪里,这些工作就有u-boot 和fsbl来完成,他们就相当于pc机的bios. u-boot 可以用digilent提供的, 在zedboard_linux_design/boot_image/里边,当然也可以自己编译。现在我们编辑一下fsbl,在sdk中,-->file-->new-->project-->xilinx-->application project-->next, 然后为我们的工程起个名字,叫fsbl, 其他的默认即可。然后next进入templates选项卡,在这儿选择zynq fsbl,然后点finish。然后在project explorer找到-->fsbl-->src-->main.c, 会发现这里边有很多的错误,原因是因为缺少一个库文件造成的,添加#include xdevcfg.h,所有错误消失。然后找个位置加入下面的代码,
/* reset the usb */
{
fsbl_printf(debug_general, reset usb...\r\n);
/* set data dir */
*(unsigned int *)0xe000a284 = 0x00000001;
/* set oen */
*(unsigned int *)0xe000a288 = 0x00000001;
xil_dcacheflush();
/* for revb set data value low for reset, then back high */
#ifdef zed_rev_a
*(unsigned int *)0xe000a048 = 0x00000001;
xil_dcacheflush();
*(unsigned int *)0xe000a048 = 0x00000000;
xil_dcacheflush();
#else
*(unsigned int *)0xe000a048 = 0x00000000;
xil_dcacheflush();
*(unsigned int *)0xe000a048 = 0x00000001;
xil_dcacheflush();
#endif
}
保存后,sdk自动编译,到zedboard_linux_design/hw/xps_proj/sdk/sdk_export/fsbl/debug/找到fsbl.elf.
当然,fsbl也可以用digilent提供的,因为我们的工程对fsbl和u-boot没有任何的改变,我们的硬件改动在比特流文件system.bit里边。这样我们就凑齐了u-boot.bin, system.bit和fsbl.elf, 用这3个文件就可以编译一个完整的boot.bin. 在sdk中, -->xinix tools-->create zynq boot image-->添加fsbl.elf路径,然后如图依次添加system.bit 和 u-boot.bin, 最后点create image。得到一个新的u-boot.bin, 将其改名为boot.bin.这个boot.bin就可以替代zedboard 自带sd卡上的boot.bin,不过这里包含了我们自定义ip。

通过DSP实现对数字图像的增强处理与应用分析
中鹏科技正式营业 目标月产3亿只电感器
如何来保护自己的WIFI和路由器
苹果短期仍将实行LCD+OLED并行战略,LGD苦恼于人力配置问题
IDC预测:WP手机将在四年内彻底消亡
ZedBoard上的点灯签名实验(三)linux内核引导
如何破解“电动汽车污染论”?电动汽车真的会污染环境吗?
指纹验证技术的两种方法,以及区别介绍
LM3421/LM343/LM3424/LM3429应用电路
大众汽车宣布支持特斯拉的北美充电标准
人工智能技术在改变旅行方式方面可能至关重要
Replay创始人开启新的征程,大力研发无人机AR
对于PSA的深入剖析
浅谈保偏器件
数据库数据恢复-ORACLE数据库常见故障有哪些?能恢复吗?
贸易战使中国经济急转直下 机器人企业备感寒冷
关于石油测井主要的五大方法的讲解
Qorvo QPF7219 Wi-Fi集成前端在贸泽开售 集成edgeBoost功能以扩大Wi-Fi 6覆盖范围
Arm Cortex-R52+ 增强时间关键型汽车设计
无线类产品(蓝牙wifi等)做RF测试时需要的定频样机怎么做?定频样机怎么把频道定好?