[文章]【HarmonyOS IPC 试用连载 】第二篇 Printf

阅读量0
0
0

1        前言

在第一篇介绍中修改helloworld.c源文件打印输出后,重新编译工程并将程序成功烧录到Hi3518EV300后再次运行可执行文件,发现打印信息不是修改后的新工程。
因为这个问题严重影响到了开发进度,而且花费了很长时间解决printf函数打印问题;另外,由于刚开始的串口驱动安装问题也同时导致了程序一直烧录不进去,纠结了好久。最后,通过重新卸载和安装串口驱动方法成功解决了程序烧录问题和printf函数打印问题。

2        printf

此次,为验证printf函数打印问题特意对helloworld.clog_sample.c两个源文件修改,程序运行结果详见下述介绍。
2.1 修改helloworld.c
为防止通过putty远程Linux终端编译工程出现数据不同步问题,在每次编译工程前都vim编辑器查看所修改的文件内容是否正确。
(1)VScode IDE
使用VScode IDE工具修改helloworld.c源文件内容如图2.1(a)所示。
图2.1(a).png

图2.1(a)
(2)Vim查看
使用Vim编辑器查看helloworld.c源文件内容如图2.1(b)所示。
图2.1(b).png
图2.1(b)

2.2 修改log_sample.c

(1)VScode IDE
使用VScode IDE工具修改log_sample.c源文件内容如图2.2(a)所示。
图2.2(a).png

图2.2(a)

(2)Vim查看
使用Vim编辑器查看helloworld.c源文件内容如图2.2(b)所示。

图2.2(b).png

图2.2(b)

3        编译与烧录
3.1 编译工程
输入命令“python build.py ipcamera_hi3518ev300 -b debug”开始编译工程,编译结果如图3.1所示。
图3.1.png
3.2  选择镜像

将编译成功的镜像全部放在一个文件夹中如图3.2(a)所示,接着打开HiTool工具选择分区表如图3.2(b)所示。
图3.2(a).png

图3.2(a)
图3.2(b).png
图3.2(b)
3.3 烧录程序
点击【烧写】按钮,重启设备后开始执行,如图3.3(a)所示。
图3.3(a).png

图3.3(a)
烧录结果如图3.3(b)所示。
图3.3(b).png

图3.3(b)
3.4 设置ENV
(1)连接

在HiTool工具终端栏中选择串口3连接并断电重启设备,如图3.4(a)所示。
图3.4(a).png

图3.4(a)
(2)设置

依次输入命令“setenv bootcmd "sf probe 0;sf read 0x400000000x100000 0x600000;go 0x40000000";”、“setenv bootargs "console=ttyAMA0,115200n8root=flash fstype=jffs2 rw rootaddr=7M rootsize=8M";”和“saveenv”进行ENV设置如图3.4(b)所示,设置成功后输入命令“reset”重启设备。注:在第一篇中的命令设置有误。
图3.4(b).png

图3.4(b)
4   运行程序
在工程目录下输入命令“./camera_app”执行程序,结果如图4所示。

图4.png
图4
5        总结
关于程序烧录失败和printf打印出错的问题,已通过重新安装串口驱动成功解决。感觉忽略了最基本、最重要的因素,之前也遇到过程序下载不进去的问题(原因是下载调试器不支持此芯片的内核)然后就耽误了很长时间。不过这次还好虽然时间久了点,但终归是自己找出来了。
下一篇准备写内核线程方面的程序,敬请期待。


回帖

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
链接复制成功,分享给好友