当前位置:   article > 正文

有关 MicroBlaze中xil_prinf/pirntf/print的一些问题_f鈥唜il

f鈥唜il

三个函数有什么区别

1.依赖的库文件不同

printf使用C标准库头文件stdio.h
print/xil_printf使用xilinx定义的头文件xil_printf.h

2.能够输出的格式不同

print只能打印字符串,不可以带参数格式化输出,函数在print.c中定义
xil_printf可以带参量打印,但是不支持打印浮点数,函数在xil_printf.c中定义
printf可以带参量打印,用法和常规的c中一样。

有关这个问题的详细分析可以参考国外大佬的视频
防挂

https://www.youtube.com/watch?v=f2pPIRHc0bM
  • 1

总结用法
使用xlinx提供的两个函数可以输出除了浮点数外的格式,打包后的代码体积会比较小。具体要涉及编译原理,我就不太懂了。
使用printf可以输出浮点数,但是代价是生成的位流体积会比较大。
只输出字符串-print
输出整形量-xil_printf
输出浮点数-printf

如何映射打印的串口到print函数

print.c中

/microblaze_0/standalone_domain/bsp/microblaze_0/libsrc/standalone_v7_7/src/common/print.c
/microblaze_0/standalone_domain/bsp/microblaze_0/libsrc/standalone_v7_7/src/common/xil_printf.c
  • 1
  • 2

中通过阅读函数,最后发现,控制写入哪个串口的实际上是通过地址重映射实现的。
地址被定义在xparameter.h中。

#define STDIN_BASEADDRESS 0x41400000
#define STDOUT_BASEADDRESS 0x41400000
  • 1
  • 2

如果想更改打印串口,修改这两个基地址即可。

也可以在platform的spr文件中修改。步骤如下

  • 图片.png
  • 图片.png
  • 图片.png
    可以在下拉菜单中选择不同的串口

print函数无法完整打印bug1解决

#todo

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/634130
推荐阅读
相关标签
  

闽ICP备14008679号