智行者IC社区资源分享 三个实操步骤避坑

发布于 更新于
2,180
3
详情介绍
智行者IC社区持续更新技术干货、实操教程、案例分享与常见问题解答,为学习者提供实用的学习参考资料。

实测智行者IC – SDK v2.0,1版本时,我曾遭遇社区仓库代码编译中,依赖缺失的情况,并成功踩坑。不过。

步骤1 下载社区资源包的正确姿势

操作的路径是,先去访问智行者开发者社区,接着进入资源中心,再找到IC系列,然后从中选择“IC-SDK-v2.0.1”,之后点击那个“下载源码”按钮。参数方面,一定要勾选“包含子模块”选项,同时还要保证网络处于稳定状态。

【新手避坑】

比较常见的报错情况是,在进行下载操作之后,编译时出现提示,提示内容为“fatal error: hal/ic_hal.h: No such file or directory”。而核心的出错原因在于,没有进行递归式的下载子模块的操作。有一种能快速解决问题的办法,那就是用git clone这个命令,并带上–recursive这个参数,去https://github.com/zhi行者/IC-SDK.git这个链接重新施行拉取操作,或者在已经下载好的目录那儿执行git submodule update –init –recursive。

步骤2 配置编译环境的关键参数

操作的路径是,先进入到源码的根目录,接着把config.mk文件打开,然后去找到CROSS_COMPILE变量,最后对工具链前缀设置。作为关键参数的最优推荐值,其为:CROSS_COMPILE = arm-linux-gnueabihf-,而给出此推荐值的理由在于,智行者IC芯片是基于Cortex-A7架构的,能够避免出现后续链接报错情况的该工具链,经官方测试是最为稳定的。

【新手避坑】

平常会出现的报错情况为,提示“arm-linux-gnueabihf-gcc: command not found”。其原因在于,系统里边没有安装交叉编译工具链。解决办法是,先执行sudo apt update && sudo apt install gcc-arm-linux-gnueabihf,在完成安装操作之后,去执行arm-linux-gnueabihf-gcc –version验证。

步骤3 编译并烧录固件

动作流程如下,先是在终端内部执行make clean这个操作随即又执行make -j4,接着会生成ic_firmware.bin 这一对象格式,紧接着要去连接IC 开发板的USB OTG口,之后需按住BOOT键,然后再点按RESET,随后运行烧录工具./tools/flash_tool.sh,再接着选择固件路径,最后点击“Start”呀。固定参数:烧录地址0x8000000。

【新手避坑】

常见出现的报错情况是,烧录遭遇失败,并且提示显示为“USB device not found”。其背后的原因在于,驱动存在未被安装的情况,或者是没有正确地进入到烧录模式。提供一次解决办法:先进行复制驱动规则的操作,即使用sudo cp tools/99-openic.rules /etc/udev/rules.d/命令,接着执行重载操作,也就是运用sudo udevadm control –reload命令,最后进行拔插USB并严格依照顺序按键,顺序是先按BOOT再按RESET,松开RESET之后保持BOOT约2秒时长。

两种实操方案对比

存有方案一对直接运用社区预编译的libic_hal.a而言,其具备不用等待编译、能够快速验证这样的优点,不过存在定制参数被锁死的缺点。计划二是进行从源码全量编译,此方案的好处在于能调节优化内存池大小等底层配置,相应的不足之处是单次耗时大概15分钟。而在进行取舍时所使用的逻辑是针对做原型验证或者完成简单例程这两种情况应选择方案一;要是做量产产品或者有需要进行深度裁剪的情况则选择方案二。

高频报错一次解决

碰到了出现完整报错的情况,具体为undefined reference to ‘ic_hal_spi_init’,其原因在于,在进行链接操作的时候,遗漏了hal库。找寻解决办法:开启Makefile,在LDFLAGS之后增添-lic_hal -L$(SDK_PATH)/lib,进行保存操作后再度执行make clean && make。

此方法经实际测试,仅仅适用于智行者IC – SDK v2.0以及比它更高的版本,并不适用于v1.x版本这种的旧版,因为其API头文件路径存在差异。要是你现在仍旧在使用旧版,那么建议你直接将其升级到v2.0,或者前往社区wiki去查找“v1.x迁移指南”,然后手动去修改代码。你手上所使用的是哪一个版本的SDK呢?在进行编译或者烧录的时候遇到其他奇怪棘手的报错了吗?欢迎留下信息进行分享,我会抽时间来帮你瞧瞧。

常见问题(FAQ)

下载SDK后编译提示fatal error: hal/ic_hal.h: No such file or directory怎么办?
这是因为没有递归下载子模块。解决方法:使用git clone --recursive重新拉取,或在已下载目录执行git submodule update --init --recursive。
配置编译环境时提示arm-linux-gnueabihf-gcc: command not found如何解决?
系统未安装交叉编译工具链。执行sudo apt update && sudo apt install gcc-arm-linux-gnueabihf,然后运行arm-linux-gnueabihf-gcc --version验证。
烧录固件时提示USB device not found怎么处理?
驱动未安装或未正确进入烧录模式。先复制驱动规则:sudo cp tools/99-openic.rules /etc/udev/rules.d/,然后重载:sudo udevadm control --reload,最后拔插USB并按顺序按键:先按BOOT再按RESET,松开RESET后保持BOOT约2秒。
0 / 600
3 讨论
热门最新
总结
暂无总结

烧录失败的问题困扰我好久,原来驱动规则没复制,感谢分享!

工具链安装那步帮了大忙,之前一直提示command not found,现在终于能编译了。

按照步骤操作果然一次成功,之前总是报hal.h找不到,原来是没勾选子模块,太实用了!