HI3559V200笔记一

1.UBOOT编译:

编译脚本如下:

  编译配置文件为arm-himix100-linux- hi3559v200_config,编译时会直接拷贝到.config文件

 1 #! /bin/bash
 2 cd u-boot-2016.11
 3 #make ARCH=arm CROSS_COMPILE=arm-himix100-linux- hi3559v200_config
 4 make ARCH=arm CROSS_COMPILE=arm-himix100-linux-
 5 make ARCH=arm CROSS_COMPILE=arm-himix100-linux- -j 20
 6 #nautilus .
 7 if [ $? -ne 0 ]; then
 8     echo "fail"
 9 else
10 #以下为制作可烧录使用的uboot.bin文件
11     echo "compile uboot finish--------"
12     echo "make uboot_burn start--------"
13     make ARCH=arm CROSS_COMPILE=arm-himix100-linux- u-boot-z.bin
14     echo "make uboot_burn finish--------"
15     cp u-boot-hi3559v200.bin /mnt/hgfs/HI3556V200/burn/spinor
16 fi

编译完成,之后可以直接HITOOL工具烧录。

遇到问题:

A.  uboot下识别不到SD卡问题。

修改如下:

  vim u-boot-2016.11/board/hisilicon/hi3559v200/hi3559v200.c +493

 his的mmc注册函数,所写的基地址不为SDIO0地址,所以识别不到sdio0的SD卡。

弃用auto_update检测,这里需要检测GPIO_0_0的状态,来识别是否裸机烧录。我们的板子没有单独设计强烧录,弃用。

打开SDIO_0的注册函数,可以正常识别到SD卡。Dev_num = 0 ; 设备号为0。

HI3559V200笔记一_第1张图片

 

 B.   Uboot下GPIO的配置问题:

 单板的LED灯GPIO脚位为:PIN_D19 ,查文档海思3559V200Pin脚复用表,D19 复用为GPIO7_1

HI3559V200笔记一_第2张图片

 

 查文档:

关于GPIO的介绍,查到基地址,0x120d7000,方向寄存器偏移地址,DATA数据地址。

 HI3559V200笔记一_第3张图片

 最终配置如下:

1 #define REG_BASE_GPIO7          0x120d7000         //GPIO7组列的寄存器地址 
2 #define GPIO7_1_DATA_OFST       0x008              //GPIO_DATA寄存器偏移地址
3   // 注意:0b11 1111 1100         表示[0-7] 全部有效,写入DATA值将使8位GPIO均有效
4   //      0b00 0000 1000         则表示GPIOX_1 有效。
5 #define GPIO7_DIR_OFST          0x400              //GPIO方向寄存器偏移值
6 #define LED_INIT        { writel(0x0400,0x112f0048); writel(0x02,REG_BASE_GPIO7 + GPIO7_DIR_OFST); }
7 #define LED_ON  writel(0x02,REG_BASE_GPIO7 + GPIO7_1_DATA_OFST)                 
8 #define LED_OFF writel(0x00,REG_BASE_GPIO7 + GPIO7_1_DATA_OFST)

注意:  writel();写寄存器值,val为参数1 , address 为参数2 。

        DATA_OFST 寄存器的写入值,要对应配置的GPIO号。0x00-0xff 对应[GPIO_0--7];

 

 

 

 

 

你可能感兴趣的:(HI3559V200笔记一)