一、SDK源码下载
参考君正官方教程:君正全平台linux源码同步教程(除X1830人脸识别板)_君正x1830_北京君正的博客-CSDN博客
教程中是linux源码的同步教程,需要将路径:
ssh://sz_halley2@119.136.25.25:29418/mirror/linux/manifest
改为:
ssh://sz_halley2@119.136.25.25:29418/mirror/freertos/manifest
即可同步freertos的源码。
二、编译
1.初始化环境变量,设置编译器到环境变量
cd freertos
source build/envsetup.sh
2.选择配置文件
在..\freertos\configs路径下有各种处理器对应的配置文件,我的硬件是基于X2100+nand,所以选择x2100_nand_defconfig。
make x2100_nand_defconfig
3.编译
make
三、修改配置文件
修改配置⽂件使⽤可视化配置⼯具IConfigTool
1.解压并打开配置工具
IConfigTool配置⼯具在与freertos同级的tools/⽬录下,解压:
cd ..
cd iconfigtool/
tar -zxvf IConfigToolApp.tar.gz
2.运行
cd IConfigToolApp/
./IConfigTool
注意:需要使用带有Xserver SSH工具,如MobaXterm,如果使用SecureCRT会提示:IConfigTool: cannot connect to X server。
Config.in 是生成配置界面文件
Config是需要修改的配置文件
点击open进⼊IConfigTool配置⼯具主界⾯。
3.修改配置文件
将console 所用的uart和波特率,这里选择uart2,波特率115200
修改完成之后点击File,选择save,然后关闭对话框。
4.从新编译
cd ../../../
make x2100_nand_defconfig
make
编译成功之后会生成启动引导文件rtos-with-spl.bin。
四、烧写文件
可以在windows或linux系统下烧写,我选择在windows下烧写。将..\tools\burntools目录下的cloner-2.5.26-windows_alpha.zip拷贝到windows电脑上。
1.安装驱动
主板上将X2100启动模式设置为USB,然后给主板上电,将USB连接到电脑,如果没有出现usb cloner device,则需要先安装驱动,驱动文件存放在..\cloner-2.5.26-windows_alpha\cloner-win32-driver目录下。
2.烧写
将..\tools\burntools目录下的x2100_sfc_nand_lpddr2_freertos.cfg文件拷贝到..\cloner-2.5.26-windows_alpha\cloner-2.5.26-windows_alpha\configs\x2100中。
进入..\cloner-2.5.26-windows_alpha\cloner-2.5.26-windows_alpha,运行cloner.exe
点击“配置”,
点击“保存”,回到主页面,点击“开始”。
然后重新插入USB,烧写完成后如下:
五、运行
启动之后,uart2会输出如下启动日志:
[0.000000] xburst2 rtos @ Mar 18 2023 17:16:59, epc: 87f5c258
[0.006083] USB Core Release: 3.00a (snpsid=4f54300a)
[0.010690] NonPeriodic TXFIFO size: 512
[0.014235] RXFIFO size: 1096
[0.016836] EPs: 9, dedicated fifos, 3576 entries in SPRAM
[0.022009] vendor init...
六、遇到问题
1.烧录之后不能启动
问题描述:
烧录之后应用不能启动,停留在了uboot阶段,日志如下(串口波特率:3000000):
从日志可以看出是DDR没有初始化通过,uboot中设置的DDR类型为LDDR3,型号为NK6CL256M16DKX-H1,而实际X2100内部的DDR类型为LPDDR2,型号为M54D5121632A。所以uboot中DDR配置不对。
解决方式:
与厂家FAE联系,重新编译bootloader生成spl文件。freertos的sdk中没有bootloader,需要下载linux的sdk。下载完成之后,先进入freertos目录设置编译器环境变量,然后在进入到linux sdk ..\bootloader\uboot-x2000目录下执行‘make x2100_base_rtos_sfc_nand’指令重新生成spl文件..\bootloader\uboot-x2000\spl\u-boot-spl-pad.bin。将u-boot-spl-pad.bin文件拷贝到..\freertos\xburst2\soc-x2000\spl路径下。修改..\freertos\configs\x2100_nand_defconfig文件,第一行修改如下:
CONFIG_SPL_BIN_FILE=xburst2/soc-x2000/spl/u-boot-spl-pad.bin
然后重新编译、烧录,即可正常启动。
2.PA00 - PA17设置为高电平时无法输出1.8V
问题描述:
按照厂家FAE描述,当mclk选择PE24时,DVP接口(PA00 - PA17)门限电压为1.8V;当mclk选择PC15时,DVP接口(PA00 - PA17)门限电压为3.3V。但是我电路上VDDIO33_CIM接1.8V,配置文件中sensor的mclk为PE24。程序中无法将PA13置高。
解决方式:
在int camera_mclk_gpio_init(int gpio)函数中
dvp_voltage_sel |= camera_mclk[index].cpm_mclk_voltage;之后
增加
camera_dvp_gpio_voltage(dvp_voltage_sel);
因为dvp_voltage_sel的值为1,所以会设置门限电压为1.8V。
技术交流群:912184327