二维码开源库ZBar STM32F429 移植

2019-07-20 02:41发布

源码工程如附件。
移植过程,参考http://www.cnblogs.com/greyorbit
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
49条回答
zuoyi
1楼-- · 2019-07-23 17:16
greyorbit 发表于 2018-2-22 23:05
消灭零回复。

ZBar是一个开源的条码和二维码解码库,网上那些打包成库的二维码解析库,大多都是这个东西 ...

赞一个!谢谢分享!
xrx852256440
2楼-- · 2019-07-23 22:12
 精彩回答 2  元偷偷看……
lzts
3楼-- · 2019-07-24 03:26
谢谢分享
alexvhozy
4楼-- · 2019-07-24 07:42
本帖最后由 alexvhozy 于 2018-5-27 17:10 编辑

多谢楼主,已经移植到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官方的开发手册。


编译,运行,输出结果。
qq1715497152
5楼-- · 2019-07-24 12:12
 精彩回答 2  元偷偷看……
屋脊雀
6楼-- · 2019-07-24 14:35
greyorbit 发表于 2018-2-28 16:44
工程是F429的工程,ZBar跟平台无关,可以移植到其他平台,只要平台的内存足够,堆的分配需要2M以上。

没有2M这么夸张。
用了你的例子,在407上测试
128K可以运行。
监控动态申请内存,峰值103K,
其中78.4K是做图片处理,自适应阈值的时候申请。
78.4K相当于你的图片数组大小。

如果要做动态识别,那么还要一张图片的空间,
那估计要200K?

对RAM需求还是太大了。几十块钱的一个单片机,产品用得还是比较少。

一周热门 更多>