2019-07-20 02:41发布
greyorbit 发表于 2018-2-22 23:05 消灭零回复。 ZBar是一个开源的条码和二维码解码库,网上那些打包成库的二维码解析库,大多都是这个东西 ...
greyorbit 发表于 2018-2-28 16:44 工程是F429的工程,ZBar跟平台无关,可以移植到其他平台,只要平台的内存足够,堆的分配需要2M以上。
最多设置5个标签!
赞一个!谢谢分享!
多谢楼主,已经移植到IMX RT-IAR平台上。
zbar移植到IAR时需要注意以下几点(以IAR 8.22版本为例):
1.工程中添加include path(废话)
2.将IAR的DLIB支持修改为"full",以添加标准库里的文件IO支持(fprintf, FILE指针之类的东西)。
3.打开编译器的C99(C11)支持,并勾选"VLA"(变长数组)支持
4.在General Option-Library Configuration中将DLIB的接口实现选择为"semihosted",以实现标准库里的stdin/stdout/stderr支持。当然,如果工程里有自己实现的_read和_write函数,可以跳过这一步。注意,如果选中了semihosted,则printf之类的标准输入输出流都通过iar自带的terminal进行交互。调试模式下view-terminal可以调出来这个界面。
5.在.icf(链接脚本)中将heap大小设置至少大于2M
6.最重要的一点:设置General Option-Library Configuration2-Heap Selection选项为"Basic Heap"。否则zbar在调用free时可能会直接__exit停机。具体原因自行参考IAR官方的开发手册。
编译,运行,输出结果。
没有2M这么夸张。
用了你的例子,在407上测试
128K可以运行。
监控动态申请内存,峰值103K,
其中78.4K是做图片处理,自适应阈值的时候申请。
78.4K相当于你的图片数组大小。
如果要做动态识别,那么还要一张图片的空间,
那估计要200K?
对RAM需求还是太大了。几十块钱的一个单片机,产品用得还是比较少。
一周热门 更多>