目录

  • 一、工程目标
  • 二、Linux系统设置
  • 三、SDK设置
    • 1.CPU1设置
    • 2.FSBL设置
    • 3.生成BOOT.BIN
  • 四、运行测试
    • 1.Linux系统测试
    • 2.裸核测试

一、工程目标

  • CPU0运行Linux系统
  • CPU1裸核运行,控制GPIO7连接的LED灯闪烁。
  • Linux系统运行在内存的前512MB空间内。
  • 裸核运行于内存的后512MB空间内。

二、Linux系统设置

1.由hdf文件生成设备树文件后,将system-top.dts文件中根节点目录下的memory节点的reg属性由<0x0 0x40000000>改为<0x0 0x20000000>。表示Linux系统运行于内存中偏移量0,长度为0x20000000的空间内,如下图所示:

2.在bootargs中添加maxcpus=1,表示使用单核。

三、SDK设置

1.CPU1设置

1.在SDK中新建CPU1工程,如下图所示:

2.在lscript.ld文件中将CPU1的内存空间设为偏移量0x20000000,长度为0x20000000,如下图所示:

3.在CPU1的工程中输入以下程序,控制GPIO7连接的LED闪烁。

#include "xparameters.h"
#include "xgpiops.h"
#include "sleep.h"int main(void)
{int status;XGpioPs GpioPs;XGpioPs_Config* GpioPs_Config;GpioPs_Config = XGpioPs_LookupConfig(XPAR_PS7_GPIO_0_DEVICE_ID);if(GpioPs_Config == NULL){return XST_FAILURE;}status = XGpioPs_CfgInitialize(&GpioPs,GpioPs_Config,GpioPs_Config->BaseAddr);if(status != XST_SUCCESS){return XST_FAILURE;}XGpioPs_SetDirectionPin(&GpioPs,7,1);XGpioPs_SetOutputEnablePin(&GpioPs, 7,1);while(1){XGpioPs_WritePin(&GpioPs, 7, 1);//点亮MIO的第7位输出1usleep(500000);//延时XGpioPs_WritePin(&GpioPs, 7, 0);//熄灭MIO的第7位输出0usleep(500000);//延时}return 0;
}

2.FSBL设置

1.新建FSBL工程如下图所示:

2.在main函数的HandoffAddress = LoadBootImage()程序后添加如下程序用来启动CPU1:

Xil_Out32(0xfffffff0, 0x20000000);
dmb (); //等待内存写入完成(同步)
#define sev() __asm__("sev")
sev (); //通过"SEV"指令唤醒CPU1并跳转至相应的程序

其中0x20000000便是上一步设置的CPU1内存空间起始地址。

3.生成BOOT.BIN

1.将编译生成的u-boot.elf复制到Windows系统下,使用SDK提供的Create Boot Image生成BOOT.BIN。
2.依次添加FSBL.elf,design_1_wrapper.bit,u-boot.elf,CPU1.elf打包生成BOOT.BIN文件。

四、运行测试

1.Linux系统测试

将生成的BOOT.BIN文件复制到SD卡,启动开发板,输入以下命令查看Linux系统使用的CPU核数与内存大小:

cat /proc/cpuinfo
cat /proc/iomem

命令执行结果如下:

可以看到Linux使用了一个CPU,RAM的范围为从0x00000000到0x1FFFFFFF,与上面设置一致,作为对比,下图为使用双核CPU时Linux系统信息:

2.裸核测试

在系统加载完BOOT.BIN文件后,可以看到GPIO7所控制的LED灯在闪烁,说明裸核运行正常。

ZYNQ Linux+裸核相关推荐

  1. ZYNQ 双核运行并交互,一个linux,一个裸核

    zynq 7000 一般有2个cpu (arm A9),我们一般都用一个cpu0,本实验让2个cpu 都运行起来,cpu0 运行操作系统petalinux 2018.2, cpu1: 裸机流水灯.同时 ...

  2. ZYNQ 7000 AMP模式双裸核运行 双方共享内存交互

    本文是 zynq 7000 AMP模式 双裸核CPU同时运行 的继续.本文主要是上文的基础上增加通过共享内存的方式,演示2个裸核的交互. 共享内存前先看看内存地址分布,这个图取自 ug585 4.1 ...

  3. 转载:ZYNQ+linux网口调试笔记(1)PS-GEM0

    ZYNQ+linux网口调试笔记(1)PS-GEM0 转载原文:https://www.jianshu.com/p/a4e25e8b2f5e 开发环境 Windows SDK 2017.4 Ubunt ...

  4. ZYNQ LINUX开发笔记——windows下用xilinx SDK编译zynq linux app小程序

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ZYNQ LINUX开发笔记--windows下用xilinx SDK编译zynq linux app小程序 前言 操作方法 总结 前 ...

  5. linux 内核dmesg,linux內核調試kmsg,dmesg

    dmesg為我們多用,man dmesg告知dmesg用來顯示和管理kernel ring buffer,那麼後者為何物,以及dmesg顯示何類信息,是本文待闡述的內容. documentation/ ...

  6. linux裸设备大小,SUSE Linux 十 配置裸设备(raw devices)

    SUSE Linux 10 配置裸设备(raw devices) 裸设备,是没有经过格式化的分区或磁盘,也叫裸分区(原始分区),不被Unix通过文件系统来读取的特殊字符设备.它由应用程序负责对 它进行 ...

  7. 【转】Linux內核驅動之GPIO子系統(一)GPIO的使用 _蝸牛

    原文网址:http://tc.chinawin.net/it/os/article-2512b.html 一 概述 Linux內核中gpio是最簡單,最常用的資源(和interrupt ,dma,ti ...

  8. ebaz s9 zynq linux中关于网络的一些小问题

    ebaz s9 zynq linux中关于网络的一些小问题 在使用petaalinux 编译ebaz的linux时,如果只按照某金与某原子的linux教程制作linux系统会卡死在内核启动的过程中.其 ...

  9. ZYNQ Linux 移植:包含petalinux移植和手动移植debian9

    问题: 1.ZYNQ Linux启动流程: BOOTROM→FSBL→Uboot→Kernel→RootFS 环境: 虚拟机ubuntu16.04 petalinux2018.3 vivado2018 ...

最新文章

  1. Ubuntu下Nginx/PHP/MYSQL开发环境的配置方法
  2. 简单排查定位linux系统的性能瓶颈
  3. android开发实验报告二,《Android 移动应用开发》实验报告-范本2(33页)-原创力文档...
  4. maven netty 配置_springboot2.3手册:5分钟用Netty搭建高性能异步WebSocket服务
  5. 从零开始入门 K8s | Kubernetes 网络模型进阶
  6. 核心概念——节点/边/Combo——内置节点——Ellipse
  7. JAVA网络编程Socket常见问题 【长连接专题】
  8. MATLAB如何用循环分割,利用Matlab进行分割提取浮游生物
  9. PYTHON招聘需求与技能体系
  10. java解析时已到达文件结尾_IO流读取到文件末尾继续读取
  11. 双向板受力特点_弹性减震球形钢支座/双向弹簧铰支座特性
  12. 阿里云发布异构计算产品家族,你可以在上面模拟核爆炸
  13. ios开发 将json格式数据上传服务器
  14. 鲁大师2014 v3.75.14.1058 官方版
  15. Safari 兼容问题累积
  16. 【2021全国高校计算机能力挑战赛Python题目】17.学科竞赛 现有六门功课(语文、数学、物理、化学、政治、历史)的成绩,现在需要从中选拔优秀同学参加如下学科竞赛
  17. python的ai模块可以做什么菜_Python AI极简入门:1、搭建一个用于AI预测的Python环境...
  18. 图片拼图微信小程序源码下载支持多模板制作和流量主
  19. MySQL中查看数据库
  20. Mooc_AutoCAD绘制建筑施工图_单元平面图测验题

热门文章

  1. No such module alamofire
  2. 隆云通水质ORP传感器
  3. 短暂人生,我们可以这样活!(一)
  4. SpringCloud-Hystrix断路器
  5. redis极简记录---配置文件学习
  6. 怎样理解“全连接”和“局部连接”
  7. VB API教程(王国荣版) 文章地址
  8. 场景实验室吴声:新市井商业,无法后退的新现实
  9. 润达软件之泰囧第二弹
  10. Hippo4j 官宣!Hippo4j 1.4.x 新版本正式发布,探索更多玩法