• Linux Master/Baremetal Remote 配置下的裸机调试


    为了实现在ZC702开发板上的两颗Cortex-A9处理器上实现Linux Master/Baremetal Remote 配置,并对Remote端的裸机程序进行调试,需要注意的几点如下:

    一、建立petalinux工程后,执行petalinux-config,选择Kernel Bootargs--->

    取消“generate boot args automatically ”,然后选择user set kernel bootargs,回车后输入:

    console=ttyPS0,115200 earlyprintk maxcpus=1 mem=384M

    保存并退出。

    二、执行petalinux-config -c kernel,选择Kernel Features --->,然后取消Symmetric Multi-processing(若不取消,那么在Cpu0启动的时候,CPU1会随之启动。) 

    三、建立SDK工程,为CPU1建立BSP,设置BSP OS为standalone,cpu为ps7_cortexa9_1,并且BSP setting中设置extra_complier_flags的值为

    -g -DUSE_AMP=1 -DUSEAMP=1

    四、建立CPU1的程序, 同样OS选为standalone,cpu为ps7_cortexa9_1,建立完成后修改<app_cpu1>/src/lscript.ld,将ps7_ddr_0_S_AXI_BASEADDR的基址和大小分别设置为0x18000000,0x80000000,这是为了避免裸机程序和Linux在运行时发生内存冲突,所以应该设置相应完全独立的两块内存空间来分别执行Linux和裸机程序。在第二步中没有设置Linux 内核基址(默认为0x0),则mem=384M意为(0x0~0x1800 0000)。

    五、接下来使用SDK进行裸机程序调试。首先利用petalinux编译生成的zynq_fsbl.elf、download.bit、u-boot.elf文件制作成BOOT.bin,并随同image.ub镜像拷贝到SD中,使ZC702从SD卡启动系统。利用SDK,选择run--->debug configurations,然后按类似以下步骤进行设置。

    这边应取消一下几项:

     

    防止cpu0被重启或是重新初始化。

    之后切换到application :

     最后点击Debug就可以了。

    参考文献:1.xapp1078 Simple AMP Running Linux and Bare-Metal System on Both Zynq SoC Processors

         2.http://www.wiki.xilinx.com/XAPP1078+Latest+Information

  • 相关阅读:
    【转载】爸妈,求你们不要这么懂事
    【Selenium】各种方式在选择的时候应该怎么选择
    java动态绑定与静态绑定【转】
    java 字符串池【转】
    【转】java中PriorityQueue优先级队列使用方法
    【转】程序员的出路之一
    关于现在,关于未来
    计算机网络实验(router_sim)工具
    MIT算法导论课程
    最大间隙问题
  • 原文地址:https://www.cnblogs.com/jiandahao/p/5726197.html
Copyright © 2020-2023  润新知