printk 的信息属于内核信息,是不会在终端打印出来的, 如果想要调试驱动,可以使用dmesg命令去查看内核调试信息。
具体命令:dmesg | tail -8
(在‘dmesg’命令后跟随‘tail’命令(‘ dmesg | tail -8’)来输出‘dmesg’命令的最后8行日志)
![](https://img2020.cnblogs.com/blog/1829120/202012/1829120-20201216150609100-1886820837.png)
但是可以看到打印信息里面出现了一些乱码,这就是出现的乱码:
![](https://img2020.cnblogs.com/blog/1829120/202012/1829120-20201216150637450-834313280.png)
'\0' 是字符串的结束符,。如果字符串末尾少了‘\0’转义字符,则其在输出时可能会出现乱码问题。我把 HEX_string[bytes] = '\0'; 这行代码网上移动,于是就没有乱码了。
![](https://img2020.cnblogs.com/blog/1829120/202012/1829120-20201216151214812-706094820.png)
![](https://img2020.cnblogs.com/blog/1829120/202012/1829120-20201216150719078-2085125041.png)
备注:以上测试 的是Intel 大学计划课程的 嵌入式设计\Exercise_3\solutions\DE1-SoC\part3 。
无