9crk

9crk

1个粉丝

34

问答

0

专栏

6

资料

9crk  发布于  2018-08-21 14:58:36
采纳率 0%
34个问答
3299

【T30上手笔记1】开发环境搭建

 
本帖最后由 9crk 于 2018-10-10 11:42 编辑

1.君正淘宝店1700大洋购买板子一套

2.T30有NLXA好几款不同配置的尾缀,由于都是Pin2Pin兼容,我们暂定X做开发,后期按需求costdown,但最低配是没有simd的,也就无法使用其算法库。

3.硬件:在没有uboot时,只支持TF卡启动,没有串口或USB loader,开发板没有内置程序,第一次必须自己去找个TF卡刷机。

4.SDK:
        .
├── ChangeLog_1.0.2.md
├── doc
│   ├── html_cn
│   └── html_en
├── include
│   ├── imp
│   └── sysutils
├── lib
│   ├── glibc
│   └── uclibc
├── opensource
│   ├── busybox
│   ├── busybox.7z
│   ├── drivers.7z
│   ├── kernel
│   ├── kernel.7z
│   ├── uboot
│   └── uboot.7z
├── res
│   ├── sensor_settings_t30
│   ├── tools_t30
│   └── wifi
├── samples
│   ├── libimp-samples
│   └── libsysutils-samples
└── Versions

        安装toolchain
                由于系统是Ubuntu 64BIT,因此采用mips-gcc472-glibc216-64bit-r2.3.3.7z
                解压 7z x mips-gcc472-glibc216-64bit-r2.3.3.7z
                设置.bashrc即可
        解压源码
                kernel uboot busybox
        编译uboot
[code]SFC启动u-boot:
make isvp_t30_sfcnor_ddr128M
或 make isvp_t30_sfcnor_ddr128M_config;make

MSC1(TF卡)启动u-boot:
make isvp_t30_msc0_ddr128M
或 make isvp_t30_msc0_ddr128M_config;make

T30:
isvp_t30_sfcnor_lite     --用于T30L
isvp_t30_sfcnor          --用于T30N
isvp_t30_sfcnor_ddr128M  --用于T30X(1Gbit DDR版本)
isvp_t30_msc0            --用于卡启动
isvp_t30_msc0_ddr128M    --用于卡启动,用于T30X(1Gbit DDR版本),如果只是用于卡烧录的话可以使用512Mbit的配置

[/code]

        编译kernel
[code]make isvp_monkey_defconfig
make uImage[/code]

        编译驱动ko
[code]cd opensource/drivers/misc/sensor_info
make
每当kernel更改之后,可能会出现ko无法insmod的情况,或者可以insmod但会出现未知错误。这是因为kernel重新编译后,函数Symbol表有变化,需要重新编译ko driver以正确link函数。此时需要重新编译ko。
[/code]
        编译busybox(没有用,可省略)
[code]make isvp_uclibc_defconfig
make
make install[/code]
[quote]注意:编译器支持uclibc和glibc,但SDK内注明一般应用都推荐uclibc
关于glibc和uclibc编译的区分方法请参考《Toolchain使用说明》
关于API库的链接顺序:[IVS库] [mxu库] [libimp/libsysutils] [libalog]
由于libimp中依赖C++库,因此需要使用mips-linux-gnu-g++进行链接,若使用gcc链接,需要手动添加LD_FLAGS+=stdc++
如何优化elf文件的大小:
编译等级选择O2:C_FLAGS/CXX_FLAGS += -O2
LDFLAG += -Wl,-gc-sections,不链接不必要的段
对elf文件执行mips-linux-gnu-strip,链接后删除不必要的段
若系统中有多个elf文件需要链接库文件,可使用动态链接的方式,若只有一个文件链接库文件,请使用静态链接的方式(注,libimp相关功能在系统中只能存在一份实例)。在调试时选择动态链接的方式可以方便的进行debug及问题反馈

[/quote]

5.编译例程:
[code]cd Ingenic-SDK-T30-1.0.2-20180525/samples/libimp-samples
make
cd Ingenic-SDK-T30-1.0.2-20180525/samples/libsysutils-samples
make[/code]

6.制作TF卡启动
        [code]umount /dev/sdb1        注意先umount
fdisk /dev/sdb
> o  --创建一个新的分区表
> n  --添加一个分区n
--此时会提示:
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p):
Using default response p
--这里回车默认是p,创建主分区

分区号 (1-4,默认为 1):
将使用默认值 1
--这里回车默认创建1号分区

起始 sector (2048-15130623,默认为 2048):
将使用默认值 2048
Last sector, +扇区 or +size{K,M,G} (2048-15130623,默认为 15130623):
将使用默认值 15130623
--2048号扇区在1MB的位置,给uboot空出了空间

最后一步,输入w,向SD卡中写入分区表
The partition table has been altered![/code]
        然后烧录uboot到sdb(!!!!注意不是sdb1!!!!)
        mkfs.vfat /dev/sdb1
        dd if=/mnt/T30/Ingenic-SDK-T30-1.0.2-20180525/opensource/uboot/u-boot-with-spl.bin of=/dev/sdb bs=1024 seek=17

7.制作rootfs
       
        分区计划:uboot+kernel+rootfs+system总共4个分区
        建议的方式是rootfs使用squashfs-ro,system使用jffs2-rw
        [code]cd ISVP-T30-1.0.2-20180525/common/software/resource/rootfs/uclibc
        tar -jxf root-uclibc-1.1.tar.bz2
        打包成squashfs
        mksquashfs rootfs rootfs.squashfs -comp xz
        打包成jffs2
        mkfs.jffs2 -o rootfs.jffs2 -r rootfs[输入文件夹] -e 0x8000[擦除大小32K] -s 0x40000[页大小256K] -n -l -X zlib --pad=0x300000
        注:擦除大小和页大小要与内核中Flash的设置保持一致,否则会出现错误。[/code]
       
8.启动系统,网口tftp烧录uboot+kernel+rootfs
        插入TF卡,即可启动进入uboot
        开发板不带网线,悲剧,暂时到这里。
        但是里面是有kernel和rootfs的
        [img=800,600]http://bbs.ebaina.com/data/attachment/forum/201808/21/202423cqq6j7bvq5bnjcpb.png[/img]
        明天再更新吧。
       
        找来了tb上的网线,但发现顺序不对,需要抠掉座子,这样接线
        
        
我来回答
回答0个
时间排序
认可量排序
易百纳技术社区暂无数据
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
相关问答
无更多相似问答 去提问
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区