有关 MicroBlaze中xil_prinf/pirntf/print的一些问题

三个函数有什么区别

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

总结用法
使用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

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

#define STDIN_BASEADDRESS 0x41400000
#define STDOUT_BASEADDRESS 0x41400000

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

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

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

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

#todo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值