SSC336/SSC338/SSC30K开发笔记
文章目录
- SSC336/SSC338/SSC30K开发笔记
- 前言
- 一、环境搭建:
- 1.安装工具链:
- 2.更换解释器sh为bash:
- 二、编译固件:
- 1.bootloader:
- 2.linux内核:
- 3.编译SDK:
- 4.编译APP:
- 三、更换sensor驱动:
- 1.编译驱动:
- 2.加载驱动:
- 总结
前言
SSC336/SSC338/SSC30K 包含了几种衍生型号,对应不同的外设和封装,但他们使用同一份SDK,所以,环境搭建和SDK编译就有了相同的方法。
SSC336D/Q,分辨率3MP@30FPS,分别内置1Gb和2Gb DDR,带0.5T AI算力。
SSC30KD/KQ,分辨率5MP@30FPS,分别内置1Gb和2Gb DDR,带0.5T AI算力。
SSC338Q,分辨率4K@20FPS,内置2Gb DDR,带0.5T AI算力。
SSC338G,分辨率4K@20FPS,外挂单颗或两颗DDR3,容量最高可达8Gb, 带1T AI算力。
SSC339G,分辨率4K@30FPS,外挂单颗或两颗DDR3,容量最高可达8Gb, 带1T AI算力
一、环境搭建:
以下步骤参考:
SDK 说明文档-2020-9-10\common\开发环境搭建参考.pdf
1、更换换为bash参考:
https://blog.csdn.net/kongxx/article/details/90632653
2、64位系统使用32位库参考:
https://blog.csdn.net/qq_26058749/article/details/78340920
sudo apt-get -f install lib32z1 libstdc++6 lib32stdc++6 lib32ncurses5
3、NFS挂载问题—— failed: Protocol not supported:
1.安装工具链:
1、解压工具链:
(1).gcc-sigmastar-9.1.0-2019.11-x86_64_arm-linux-gnueabihf.tar 移动到/opt目录。
(2). vi /etc/profile,
2.更换解释器sh为bash:
sigmstar的编译脚本用的都是bash.如果默认是sh的话,很多脚本命令是不认识的,编译会出现很多错误。
Ubuntu切换默认sh为bash或者dash:
https://www.cnblogs.com/wwlww/p/8410174.html
#sudo dpkg-reconfigure dash
选择否即可。
二、编译固件:
1.bootloader:
SPI- NAND package
declare -x ARCH=“arm”
declare -x CROSS_COMPILE=“arm-linux-gnueabihf-”
make infinity6e_spinand_defconfig;
make clean;
make
编译后得到镜像
cp u-boot_spinand.xz.img.bin ${ your_release_path }// 选择 spi-spinand 时
2.linux内核:
终端输入:
#declare -x ARCH=“arm”
#declare -x CROSS_COMPILE=“arm-linux-gnueabihf-”
#make infinity6e_ssc012b_s01a_spinand_defconfig
#make
内核配置:
make ARCH=arm menuconfig
输出文件:
#cp arch/arm/boot/uImage.xz ${ your_release_path }
SSC336Q的内核模块在启动的时候动态插入,包括NFS。
vi /customer/demo.sh
3.编译SDK:
文件目录:sourcecode/project
cd $/{Alkaid}/project
. /setup_config.sh xxx_alkaid_build_config
(exp: . /setup_config.sh ./configs/ipc/i6e/ spinand.glibc-squashfs.012b.128.qfn128)
make image
产生新的配置文件:
#./setup_config.sh ./configs/ipc/i6e/spinand.glibc-9.1.0-squashfs.012b.256.qfn128
编译镜像:
#make image
编译完毕后:
#ls image/output/images/ -l
4.编译APP:
在SDK编译正常后才可以编译APP,因为Makefile文件用到SDK里面的配置,需要设置正确的配置文件,否则编译不过。
源码位置:sourcecode/sdk/verify/mi_demo
直接make即可。生成的目标文件:
三、更换sensor驱动:
1.编译驱动:
进入目录:sourcecode/sdk/driver
编译出来驱动程序:
ls sourcecode/sdk/driver/SensorDriver/drv/src
2.加载驱动:
将驱动程序下载到板端,加载新的驱动即可:(这里只是举例说明,实际以板端为准)
/customer/demo.sh
这个脚本会在系统启动时候运行,加载所有的驱动程序,加载sensor的驱动程序。然后再启动应用程序。这个脚本可以自己手动编辑:
vi /customer/demo.sh
将里面的sensor驱动名字换成自己编译出来的即可,驱动文件的路径要正确。/customer目录是可写的。 (可以参考我们的固件里面的这个文件)
比如sensor是SC2336:
insmod /customer/sc2336_MIPI.ko chmap=1
比如sensor是IMX307:
insmod /customer/imx335_MIPI.ko chmap=1
比如sensor是SC200AI:
insmod /customer/SC200ai_MIPI.ko chmap=1
总结
以上就是sigmastar SSC336/SSC338/SSC30K芯片的环境搭建和SDK的编译过程,后续还会有系列文章,敬请期待.