基于DIGI boot 命令实现卡升级

来源:互联网 发布:微信运营平台源码 编辑:程序博客网 时间:2024/05/24 06:32

主要是提供一个思路,在别人的基础上做事提高效率

基于DIGI的u-boot命令#define MMCCDEV "setenv mmcdev 0"#define MMCANDROID "run partition_mmc_android"#define MMCPART "mmc part"#define MMC_BOOT "update android mmc 1 fat boot.img"#define MMC_SYSTEM "update system mmc 1 fat system.img"#define MMC_BOOT_ANDROID "setenv bootcmd dboot android mmc"#define MMC_SAVEENV "saveenv"#define BOOTD "boot"#define UBOOT_UP "update uboot mmc 1 fat u-boot-ccimx6sbc.imx"#define GPIO02_IO02_MUX_CON (*(volatile unsigned long *)0x20e0304)#define GPIO02_IO02_DATA (*(volatile unsigned long *)0x20a0000)#define GPIO02_IO02_DIR (*(volatile unsigned long *)0x20a0004)#define HDMI_SET "setenv video_args video=mxcfb0:dev=hdmi,1920x1080M@60"#define FINDCONFIGFILE "fatload mmc 1 0x80008000 config "#define FORMAT_CACHE  " bootargs_once=androidboot.cache=format " #define FORMAT_DATA   " bootargs_once=androidboot.data=format " #define CCIMX6SBC_USER_LED0 IMX_GPIO_NR(2,2)iomux_v3_cfg_t const mx6q_ccimx6sbc_userled_pad[] = {MX6_PAD_NANDF_D2__GPIO_2_2|MUX_PAD_CTRL(NO_PAD_CTRL),};int update_mmc(void){struct mmc *mmc;int i=100*100*100;mmc = find_mmc_device(0);if(NULL==mmc)return;else {mmc_init(mmc);run_command(MMCCDEV,0);printf("####################################\n");printf("open led\n");imx_iomux_v3_setup_multiple_pads(mx6q_ccimx6sbc_userled_pad, ARRAY_SIZE(mx6q_ccimx6sbc_userled_pad));gpio_direction_output(CCIMX6SBC_USER_LED0,0);gpio_set_value(CCIMX6SBC_USER_LED0, 1);printf("0x%x\n",GPIO02_IO02_MUX_CON);printf("0x%x\n",GPIO02_IO02_DIR);printf("0x%x\n",GPIO02_IO02_DATA);printf("#####################################\n");run_command(UBOOT_UP,0);run_command(MMCANDROID,0);run_command(MMCPART,0);run_command(MMC_BOOT,0);run_command(MMC_SYSTEM,0);run_command(MMC_BOOT_ANDROID,0);run_command(HDMI_SET,0);run_command(MMC_SAVEENV,0);printf("closed led\n");printf("#######################################\n");gpio_set_value(CCIMX6SBC_USER_LED0, 0);run_command(BOOTD,0);}

0 0
原创粉丝点击