rt-thread/bsp/x1000
Bernard Xiong 43aab3c0a0 [BSP][X1000] Update download URL of cloner for X1000 2018-05-28 22:14:10 +08:00
..
applications [BSP] Add WIFI_USING_AP6212 option for X1000 2017-12-09 19:11:58 +08:00
drivers [UIEngine] move UI engine as a package 2018-03-03 16:34:01 +08:00
figures [BSP][X1000] Update README.md for X1000 2018-05-28 22:10:20 +08:00
.config [UIEngine] move UI engine as a package 2018-03-03 16:34:01 +08:00
Kconfig [Kconfig] Rename all of KConfig files to 'Kconfig' 2017-11-30 20:12:53 +08:00
README.md [BSP][X1000] Update download URL of cloner for X1000 2018-05-28 22:14:10 +08:00
SConscript [BSP] Add BSP for Ingenic X1000 CPU 2016-04-24 19:34:41 +08:00
SConstruct [bsp]update SConstruct&Kconfig&rtconfig.py 2017-11-13 18:10:05 +08:00
rtconfig.h [UIEngine] move UI engine as a package 2018-03-03 16:34:01 +08:00
rtconfig.py update SConscript: support scons 3. 2018-02-06 20:07:28 +08:00
uboot-for-realboard.bin Add uboot binary for RealBoard. 2018-05-09 00:44:41 -07:00
x1000_ram.lds [bsp]update x1000 bsp driver 2017-11-11 13:53:20 +08:00

README.md

君正X1000处理器板级支持包


1. 简介

X1000 是 君正 Ingenic 公司的一款面向 智能音频、图像识别、智能家电、智能家居 等领域的高性能物联网芯片。包括如下硬件特性:

硬件 描述
芯片型号 X1000/X1000E
CPU MIPS32, XBurst
主频 1GHz
片内LPDDR 32MB

注: X1000E携带64MB片内LPDDR

此处输入图片的描述

这个板级支持包是一份君正X1000处理器的完整移植。

2. 编译说明

X1000处理器是一款MIPS32兼容处理器由于RT-Thread/ENV工具中并未默认携带MIPS的工具链可以按照自己使用PC情况到以下地方下载工具链

安装好工具链后假设使用的是Windows版本工具链安装在D:\Tools\mips-2016.05目录下。使用env工具打开console进入到命令行环境中需要手动设置工具链的环境变量RTT_EXEC_PATH

set RTT_EXEC_PATH=d:\Tools\mips-2016.05\bin

然后在console中进入到rt-thread\bsp\x1000目录中执行以下命令编译RT-Thread:

scons

来编译这个板级支持包。如果编译正确无误会产生rtthread.elf、rtthread.bin文件。其中rtthread.bin需要烧写到设备中进行运行。

也可以在ENV中使用

menuconfig

来配置RT-Thread。当前这份BSP支持多种板卡类型包括哈雷2凤凰板以及睿赛德提供的RealBoard X1000开发板等。

board配置

3. 烧写及执行

在烧写前请使用两条micro-b的USB线连接到电脑上一个是USB转UART一个是USB接口用于烧写固件。烧写需要使用君正提供的cloner工具软件注意是cloner-2.3.0版本。请按照下面的方式设置cloner工具软件。

其中,

  • uboot.bin烧写地址是0x0
  • rtthread.bin烧写地址是0x40000
  • rootfs烧写地址是0x400000

uboot.bin请使用bsp/x1000中附带的uboot-for-realboard.bin文件。关于rootfs文件生成请见第5节

在连接好USB后如果是RT-Thread RealBoard/X1000开发板可以同时按住 Reset + Boot 按键,然后先释放Reset按键,然后再释放Boot按键。这个时候cloner软件会进入烧写模式烧写固件到板子上。

连接好串口可以使用putty以115200-N-8-1的配置方式连接到设备上。开发板复位后首先运行的是u-boot引导程序然后再由u-boot跳转到flash中的rtthread.bin固件中。

如果是自行编译的uboot程序可以把bootcmd设置为

bootcmd=sfcnor read 0x40000 0x340000 0x80800000\;go 0x80800000

3.1 运行结果

如果编译 & 烧写无误当复位设备后会在串口上看到RT-Thread的启动logo信息

启动信息

4. 驱动支持情况及计划

驱动 支持情况 备注
UART 支持 UART0/1
Clock 支持
pinmux 支持
SPI 支持
IIC 支持 以IO模拟方式
SFC Flash 支持 支持四线模式挂载文件系统
WDT 支持
SLCD 支持
MMC 支持 MMC0/1
EMAC 支持 测试未充分
USB 有限度支持device USB device还未完全稳定
Camera 不支持 N/A

4.1 IO在板级支持包中的映射情况

IO号 板级包中的定义
调试串口 PD2/3

5. 生成flash中的文件系统镜像

在这份BSP中默认把flash偏移0x400000后的空间划分为文件系统使用即Flash中4MB以后的空间做为文件系统使用并且以FAT文件系统方式来使用RT-Thread本身并无一些文件系统上文件的依赖不过第6节中提及的Wi-Fi功能固件是放于文件系统根目录下

这部分文件系统空间可以在系统启动后使用mkfs命令来格式化然后装载也可以在PC上预先生成然后通过cloner工具烧写到flash上。如果是预先生成的方式可以使用env/tools/fatdisk工具进行生成。fatdisk工具类似于把一个目录下的所有文件及子目录都转换成一个FAT文件系统的映像至于如何转换相对应的参数是什么样的主要由fatdisk.xml配置文件来控制例如

<?xml version="1.0" encoding="UTF-8"?>
<fatdisk>
   <disk_size>4096</disk_size>
   <sector_size>4096</sector_size>
   <root_dir>root</root_dir>
   <output>sd.bin</output>
   <strip>1</strip>
</fatdisk>

disk_size代表了这个文件系统映像的最大容量是多少单位是kBytessector_size代表着扇区大小对于X1000分支这个大小必须是4096。root_dir则表示转换的目录是针对fatdisk.exe可执行文件的相对目录output代表生成的文件系统映像文件的文件名称。strip代表文件系统后面的全0数据是否移除0代表不移除1代表移除

注: 在BSP中也可以更改这个flash偏移点它是由如下分区代码所决定

文件bsp/x1000/drivers/sfc/drv_sfc_gd25qxx_mtd_partition.c

static struct rt_mtd_nor_partition _sf_gd25_parts[] =
{
    {
        /* sf01 u-boot 512K */
        .name       = "uboot",
        .offset     = 0x0,
        .size       = (0x80000),
        .mask_flags = PART_FLAG_RDONLY | PART_TYPE_BLK,     /* force read-only */
    },
    ...
    {
        /* rootfs */
        .name       = "rootfs",
        .offset     = 0x400000,
        .size       = 0x800000,
        .mask_flags = PART_FLAG_RDONLY | PART_TYPE_BLK,     /* force read-only & Block device */
    },
    ...
};

当前BSP中这个分区配置被配置成如下表所示

名称 起始地址 大小 属性
uboot 0x0 512KBytes 只读
kernel 0x80000 3.5MBytes 只读
rootfs 0x400000 8MBytes 只读
appfs 0xE00000 2MBytes 读写

6. 使用哈雷2核心板Wi-Fi功能

在RT-Thread package上已经包含了哈雷2核心板带的BCM43438的Wi-Fi驱动可以在menuconfig中打开以下选项

RT-Thread online packages --->
    IoT - internet of things --->
        Wi-Fi --->
            Wiced WiFi --->
                [*] Wiced WiFi driver for rt-thread
                    wiced wifi version (latest version)

然后在console命令下执行pkgs --update它会下载Wi-Fi驱动package并部署到这个板级支持包中。

当编译成功并烧写到板子上以及把BCM43438的固件43438A1.bin放置一份在文件系统根目录下。系统运行起来后然后使用以下命令行关联到Wlan网络中

wifi w0 join YOUR_SSID YOUR_PASSWD

其中,

  • YOUR_SSID 请使用你的wlan AP名称代替
  • YOUR_PASSWD 请使用你的wlan设备密码代替

6. 参考