Microblaze 安全复位

Microblaze 安全复位

ISSUSES

VIVADO SDK 2018.3 Microblaze 软核复位后应用程序执行异常

VIVADO SDK 2018.3 Microblaze 软核复位后应用程序不执行

VIVADO SDK 2018.3 Microblaze 复位后 malloc/calloc 返回空指针

DESCRIPTION

Microblaze 复位时 BRAM 中数据会保留,CPU 复位后,应用程序将从复位向量处开始执行,.data 段用来存放程序中已初始化的全局变量和静态变量,其中的变量在程序运行后可能被修改,若程序运行需要依赖变量的初始值,则每次复位后都可能导致产生不可预测的结果

SOLUTION

Method 1

将程序复制到外部的非易失存储器内,在运行时重新将 .data 段拷贝到 RAM 中,具体见 article 30878

Method 2

修改链接脚本将程序的 .data 段复制一份,运行时从备份地址拷贝一份

lscript.ld

.data : AT ( __data_load ) {
   . = ALIGN(4);
   __data_start = .;
   *(.data)
   *(.data.*)
   *(.gnu.linkonce.d.*)
   __data_end = .;
}

...
__data_load = .;

main.c

extern unsigned char __data_load_size, __data_start, __data_end, __data_load;
//...
int main()
{
    memcpy((&__data_start), (&__data_load), ((&__data_end) -(&__data_start) + 1));
    //...
}

Related Links

malloc returns null pointer after microblaze reset

30878 - 13.1 EDK - My Software Application Operates Improperly after a CPU Reset

How to safely reset or restart execution from application on Microblaze

Microblaze User Guide

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
仿真MicroBlaze是一种针对Xilinx FPGA的可编程软处理器核。MicroBlaze是一个32位的RISC体系结构,具有多个可定制的选项和功能,可以根据不同的需求进行配置和优化。 仿真MicroBlaze是通过使用仿真工具来模拟和测试MicroBlaze的功能和性能。提供仿真环境可以帮助开发人员在硬件开发之前对MicroBlaze进行有效的测试和调试。仿真过程可以模拟实际的硬件环境,并且可以使用仿真工具提供的调试功能来检查和分析MicroBlaze的运行情况。 在进行MicroBlaze的仿真之前,需要使用Xilinx的软件工具配置和实例化MicroBlaze核,并将其集成到所需的FPGA设计中。配置包括指定MicroBlaze核的选项和功能,如处理器速度、内存大小和外设接口等。完成配置后,可以使用仿真工具加载FPGA设计并执行仿真。 仿真MicroBlaze可以进行各种测试,包括功能测试、性能测试和稳定性测试等。通过在仿真环境中运行不同的测试案例,开发人员可以检查MicroBlaze是否正确地执行了指令和程序,并评估其性能和稳定性。此外,仿真工具还提供了跟踪和监视功能,可以帮助开发人员分析和解决MicroBlaze的问题。 综上所述,通过仿真MicroBlaze开发人员可以在硬件开发之前进行有效的测试和调试,确保MicroBlaze的功能和性能符合预期。这对于设计和开发基于MicroBlaze的应用程序和系统非常重要,并可以提高设计的质量和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值