|
【HarmonyOS IPC 试用连载 】第二篇 Printf,
1 前言 在第一篇介绍中修改 helloworld.c 源文件打印输出后,重新编译工程并将程序成功烧录到 Hi3518EV300 后再次运行可执行文件,发现打印信息不是修改后的新工程。
因为这个问题严重影响到了开发进度,而且花费了很长时间解决 printf 函数打印问题;另外,由于刚开始的串口驱动安装问题也同时导致了程序一直烧录不进去,纠结了好久。最后,通过重新卸载和安装串口驱动方法成功解决了程序烧录问题和 printf 函数打印问题。
2 printf 此次,为验证 printf 函数打印问题特意对 helloworld.c 和 log_sample.c 两个源文件修改,程序运行结果详见下述介绍。
2.1 修改 helloworld.c
为防止通过 putty 远程 Linux 终端编译工程出现数据不同步问题,在每次编译工程前都 vim 编辑器查看所修改的文件内容是否正确。
(1)VScode IDE
使用 VScode IDE 工具修改 helloworld.c 源文件内容如图 2.1(a) 所示。
图2.1(a).png (63.19 KB, 下载次数: 0)
下载附件 保存到相册
半小时前 上传
图2.1(a) (2)Vim查看 使用Vim编辑器查看helloworld.c源文件内容如图2.1(b)所示。
图2.1(b).png (29.95 KB, 下载次数: 0)
下载附件 保存到相册
半小时前 上传 图2.1(b)
2.2 修改 log_sample.c
(1)VScode IDE
使用 VScode IDE 工具修改 log_sample.c 源文件内容如图 2.2(a) 所示。
图2.2(a).png (50.33 KB, 下载次数: 0)
下载附件 保存到相册
半小时前 上传
图2.2(a)
(2)Vim查看 使用Vim编辑器查看helloworld.c源文件内容如图2.2(b)所示。
图2.2(b).png (31 KB, 下载次数: 0)
下载附件 保存到相册
半小时前 上传
图2.2(b)
3 编译与烧录 3.1 编译工程 输入命令“python build.py ipcamera_hi3518ev300 -b debug”开始编译工程,编译结果如图3.1所示。
图3.1.png (55.38 KB, 下载次数: 0)
下载附件 保存到相册
半小时前 上传 3.2 选择镜像
将编译成功的镜像全部放在一个文件夹中如图3.2(a)所示,接着打开HiTool工具选择分区表如图3.2(b)所示。
图3.2(a).png (33.82 KB, 下载次数: 0)
下载附件 保存到相册
半小时前 上传
图3.2(a)
图3.2(b).png (89.94 KB, 下载次数: 0)
下载附件 保存到相册
半小时前 上传 图3.2(b) 3.3 烧录程序 点击【烧写】按钮,重启设备后开始执行,如图3.3(a)所示。
图3.3(a).png (105.62 KB, 下载次数: 0)
下载附件 保存到相册
半小时前 上传
图3.3(a) 烧录结果如图3.3(b)所示。
图3.3(b).png (102.49 KB, 下载次数: 0)
下载附件 保存到相册
半小时前 上传
图3.3(b) 3.4 设置ENV (1)连接
在HiTool工具终端栏中选择串口3连接并断电重启设备,如图3.4(a)所示。
图3.4(a).png (26.42 KB, 下载次数: 0)
下载附件 保存到相册
半小时前 上传
图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 (27.57 KB, 下载次数: 0)
下载附件 保存到相册
半小时前 上传
图3.4(b) 4 运行程序 在工程目录下输入命令“./camera_app”执行程序,结果如图4所示。
图4.png (21.38 KB, 下载次数: 0)
下载附件 保存到相册
半小时前 上传 图4 5 总结 关于程序烧录失败和printf打印出错的问题,已通过重新安装串口驱动成功解决。感觉忽略了最基本、最重要的因素,之前也遇到过程序下载不进去的问题(原因是下载调试器不支持此芯片的内核)然后就耽误了很长时间。不过这次还好虽然时间久了点,但终归是自己找出来了。 下一篇准备写内核线程方面的程序,敬请期待。 |
|