一、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。

君正X2100 FreeRTOS开发记录相关推荐

  1. 君正X系列开发1---系统编译

    整体编译执行下列命令: source build/envsetup.sh lunch make u-boot编译使用 在u-boot目录下有一个文件boards.cfg 里面有各个板子的配置信息 gr ...

  2. 君正4750开发板使用日记2-Linux环境搭建与内核编译

    为什么80%的码农都做不了架构师?>>>    Linux环境搭建与内核编译 上一篇中把4750开发板与PC的硬件连通了,这一篇记录的是基本的Linux环境的搭建.其实官方文档已经比 ...

  3. 君正Zeratul开发(4)——图像效果调试

    前言   目前而言,君正设备的isp 图像效果还是君正的工程师在负责开发调试,如果需要添加一款新的摄像头,一般也是将新摄像头的驱动,从ISVP 版本移植到Zeratul平台.这里主要介绍:(1)摄像头 ...

  4. 君正x2000开发板usb口读取文件

    ## 标题君正x2000开发板USB口读取文件 (由于word文档无法上传,只复制了文字,操作过程中的图片就不做展示) 开发要求 1.外设的tf卡存储录像抓图文件需要通过USB口在电脑上进行查看.拷贝 ...

  5. 君正Zeratul开发(6)——为什么禁止使用system

    (一)前言  在君正Zeratul_T31_开发指南中明确规范,禁止在主程序中使用system 等系统调用接口函数,需要在另外的一个守护进程中去实现system函数的功能.这里有两个问题:1.syst ...

  6. 君正Zeratul开发(5)——快速启动优化

    前言:   Camera 需要快速启动, 以第一时间抓拍到图像,君正官方给的第一帧图像是200ms,实际应用中时间会长不少. 1.尽快运行主程序  主程序应该放置在 rootfs 中并第一时间加载运行 ...

  7. 君正Zeratul开发(2)——uboot启动分析

    前言    boot启动一般分为两个阶段,君正设备的第一阶段uboot spl 程序没有开源,用户编译的是第二阶段的boot,最后将两个阶段的boot合并到一起,写入到boot分区中去,boot分区如 ...

  8. 尴尬君正,是如何被“创新”带到沟里去的?

    作为创业板的一个标杆,北京君正(300223)上市快三年了.在上市三年之际,重新回顾梳理这样一家集"自主创新""高新科技企业""国产CPU" ...

  9. adb shell 调试君正板子

    今天接到一个任务,把现有的代码移植到君正的开发板上. 下面就开始吧. 1 首先,代码移植到君正上,需要交叉编译环境. 需求方已经提供了交叉编译的tar包,直接在linux上解压缩. 然后 指定 CC= ...

最新文章

  1. 2017qcon大会的一点想法(安全人才如何不被淘汰?)
  2. Selenium3自动化测试——2. python编写简单自测代码
  3. linux c 多线程socket编程,Linux多线程socket编程一些心得
  4. oracle10g配置失败6,Oracle10g DataGuard中ORA-16026错误解决-入门基础-Oracle频道-中国IT实验室...
  5. oracle group by sql,Oracle SQL GROUP BY“不是GROUP BY表达式”的帮助
  6. 一个好习惯可以让自己享受一辈子
  7. oracle rollback 观察时间
  8. 编程模式(schema) —— 表驱动法(table-driven)
  9. Java集合之map 集合使用
  10. 【转】Android业务组件化之URL Scheme使用
  11. 快速突破面试算法之图篇
  12. android手机鼠标,安卓手机变鼠标以及手机控制电脑图文教程
  13. 在计算机桌面中选择了隐藏如何显示,怎么把隐藏电脑桌面游戏找到
  14. oracle没有网卡驱动,联想台式机网卡驱动,手把手教你联想台式机网卡驱动
  15. 关于Win10系统下VIA HD AUDIO威盛声卡没声音问题 - 有效解决办法
  16. JDK 11 下载安装,配置idea
  17. 最小二乘支持向量机(LSSVM)详解
  18. 2022-ISCTF-部分MISC和PWN
  19. java地图自动定位_如何实现高德地图实现自动定位
  20. 计算机硬盘的存储时间,存储访问时间

热门文章

  1. 第一次世界大战是因为昆虫引起
  2. excel固定第一行
  3. 专辑《原创音乐王》歌曲洪森《不想明天说再见》
  4. 公司增值税太高了怎么办?除了此法解决就别无他法了吗?
  5. Python 开发环境搭建及预备知识
  6. 高手新手都能用的140个电脑技巧
  7. 我的王朝服务器维护多久,我的王朝怎么玩不了 我的王朝进不去解决办法
  8. 低代码框架amis的使用
  9. python代码运行后怎么保存_1.11Python下保存并执行程序
  10. 【演示文稿制作】Focusky教程 | 怎么搭配演示文稿的颜色最好?