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)
(2)Vim查看
使用Vim编辑器查看helloworld.c源文件内容如图2.1(b)所示。
图2.1(b)
2.2 修改log_sample.c
(1)VScode IDE
使用VScode IDE工具修改log_sample.c源文件内容如图2.2(a)所示。
图2.2(a)
(2)Vim查看
使用Vim编辑器查看helloworld.c源文件内容如图2.2(b)所示。
图2.2(b)
3 编译与烧录
3.1 编译工程
输入命令“python build.py ipcamera_hi3518ev300 -b debug”开始编译工程,编译结果如图3.1所示。
3.2 选择镜像
将编译成功的镜像全部放在一个文件夹中如图3.2(a)所示,接着打开HiTool工具选择分区表如图3.2(b)所示。
图3.2(a)
图3.2(b)
3.3 烧录程序
点击【烧写】按钮,重启设备后开始执行,如图3.3(a)所示。
图3.3(a)
烧录结果如图3.3(b)所示。
图3.3(b)
3.4 设置ENV
(1)连接
在HiTool工具终端栏中选择串口3连接并断电重启设备,如图3.4(a)所示。
图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)
4 运行程序
在工程目录下输入命令“./camera_app”执行程序,结果如图4所示。
图4
5 总结
关于程序烧录失败和printf打印出错的问题,已通过重新安装串口驱动成功解决。感觉忽略了最基本、最重要的因素,之前也遇到过程序下载不进去的问题(原因是下载调试器不支持此芯片的内核)然后就耽误了很长时间。不过这次还好虽然时间久了点,但终归是自己找出来了。
下一篇准备写内核线程方面的程序,敬请期待。