Xilinx SDK编译出现undeference to "outbyte"错误的解决办法

【前言】自己初次接触MicroBlaze,好多东西都不太了解,借着博客园的平台把自己平时学习和工作遇到的问题和解决办法,以及自己的一些想法记录下来,边学习,边积累,也想与大家分享交流一下心得,与众乐方为乐也,^_^

自己前些天在SDK中编译一个helloworld的时候,提示“print函数中undeference to outbyte”的错误,通过百度以及自己的研究,找到了解决办法:
第一步:确认SDK生成的链接脚本中heap和stack的大小是否太小了,因为print等函数的输出需要占用比较多的堆栈资源的,我将其各自的值由1KB改为8KB;(修改时,不能直接输入8KB,必须输入8192,因为SDK是按字节计算的,呵呵)

第二部:确认BSP(Board Support Package)设置中的drive中,stdin和stdout的value是否都是debug_module,若不是,将其改为debug_module即可,因为print等函数的功能是将信息显示在标准输出上,因此,需要指定stdin和stdout。

【补充】:
1.MicroBlaze实际上是Xilinx公司用硬件描述语言实现的CPU处理器的软核,即完全用FPGA搭建一个CPU;
2.Xilinx ISE工具是用来根据CPU的架构,如MicroBlaze,建立CPU外围的硬件结构,使用的语言自然就是硬件描述语言,如VHDL或Verilog;
3.SDK工具则依据ISE工具建立硬件平台,导入MicroBlaze的软核,然后使用高级语言,如C或C++进行应用程序的编写,并将最终生成的程序刷到FPGA中,从而实现想要的功能。

【备注】
以上是自己根据这些天的工作和学习的一些心得和体会,不见得完全正确,欢迎大家交流指正,^_^

原文地址:https://www.cnblogs.com/cnpirate/p/2824792.html