第一次发博客,想把总结的一个Uboot下备份恢复操作系统的方法分享一下。

下面开发环境是TI 的dm365,根据数据手册利用IO功能实现系统上电在uboot读取内核的时候按下IO键检测恢复系统

首先,由于需要使用uboot下的命令,Uboot下修改cmd_mem.c,

增加一个命令

U_BOOT_CMD(

cmp,       4,    1,    do_mem_mycmp,

"memory compare",

"[.b, .w, .l] addr1 value count"

);

//命令增加的函数,功能主要是对比一个地址和一个值

int do_mem_mycmp (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])

{

ulong      addr1,value, count;

int     rcode = 0;

if (argc != 4)

return cmd_usage(cmdtp);

addr1 = simple_strtoul(argv[1], NULL, 16);

addr1 += base_address;

addr2 = simple_strtoul(argv[2], NULL, 16);

value += base_address;

count = simple_strtoul(argv[3], NULL, 16);

if(*(ulong*)addr1 == value )

Return 1;

}else

Return 0;

上面的修改就是在uboot命令下增加了一个命令。使用方法如下:

Mycmp addr value(hex)count

Example:mycmp 0x01c67098 0x00000000 1(比较地址0x0c167098地址的值和0x00000000是否相等,相等则返回1,否则返回0)

配置并获取IO状态:

此外的操作就是根据不同板级的复用引脚之类的配置出一个按键的IO口,如GZH-801C是101号GPIO作为输入。所以我需要在uboot读取101号GPIO的高低电平。

GPIO 101在arm subsystem reference文档里面可以看到,属于pinmux0的复用脚,将0x01c40000地址的4-5位配置为01,则复用脚工作在IO状态,接下来要配置IO的输入和输出方向,在数据手册TMS320DM36x DMSoC General-Purpose Input_Output User's Guide.pdf里面可以了解到IO方向地址0表示输出,1表示输入。101号IO属于gpiobank6配置地址为0x01c67088 ,将此地址配置第5位为1表示输入,接下来就可以读取IO的值了,在uboot下md命令可以读取物理地址值,这个物理地址指的是cpu的。101 IO的io电平表现地址在0x01c67098。

正常状态 md 0x01c67098 1读取的值是 0x00000020高电平

如果键被按下,那么值将是0x00000000。

这样我们就可以根据uboot检测上电按键来选择恢复flash的文件系统了。

补充一点,上面配置复用脚和设置输入输出可以在uboot源码里面做,也可以直接在命令处理。

命令行:

setenv bootcmd 'nboot 0x80700000 0 0x400000;

mw 0x01c40000 0x00fd0010;//命令行配置复用脚为IO

if mycmp 0x01c67098 0x00000000 1;//读取状态为按下状态

then       nand erase 0x800000 0x2000000 ;//擦除烧写操作

nand read.jffs2 0x82000000 0x4800000 0xda0000;

nand write.jffs2 0x82000000 0x800000 0xda0000;

fi;//结束if判断

bootm'

对于这个uboot的脚本应用,网上基本找不到资料,我是根据TI在uboot里使用脚本总结出来,刚好利用做恢复,否则uboot恢复无法进行。

结构如下:

If xxx;

Then 满足 xxx;

Fi;

可以多重嵌套

If xxx;

Then if xxx;

Then if xxx;

Fi;

Fi;

Fi;       //利用这种结构我们可以在上电时同时按下组合键来确定恢复系统,可以使用sleep,至于更多的命令我没有验证。

根据上面的做法,只有获取到IO并拉出来做按键,便可以做系统备份处理。任何平台都可以实现。

Uboot下备份恢复操作系统方法相关推荐

  1. CISCO 交换设备IOS 备份/恢复操作

    集团统一进行交换机IOS升级,增强安全性,下面是升级及备份CISCO WS-C3750G-24TS-1U交换机操作实例. 所需工具:TFTP工具.SecureCRT.下载最新IOS(可到CISCO官网 ...

  2. Oracle 知识篇+RMAN带库备份恢复/带库全备恢复/带库0级备份恢复操作概要

    说明:本文为Oracle RMAN带库备份恢复/带库全备恢复/带库0级备份恢复操作概要 温馨提示:如果您发现本文哪里写的有问题或者有更好的写法请留言或私信我进行修改优化 ①带库备份 rman targ ...

  3. Oracle 运维篇+RAC集群转单实例/RMAN异机恢复/RMAN迁移/RMAN备份恢复操作概要

    说明:本文为Oracle RAC集群转单实例/RMAN异机恢复/RMAN迁移/RMAN备份恢复操作概要方便用户查阅 温馨提示:如果您发现本文哪里写的有问题或者有更好的写法请留言或私信我进行修改优化 说 ...

  4. Xtrabackup的备份恢复操作

    文章目录 一.下载安装Xtrabackup 二.工具介绍 三.工作流程 四.准备工作 4.1 连接参数 4.2 创建用户及授权 五.备份操作 5.1 全备破坏性测试(使用xtrabackup) 5.2 ...

  5. 赋能云HBase备份恢复 百T级别数据量备份恢复支持

      云HBase发布备份恢复功能,为用户数据保驾护航.对大多数公司来说数据的安全性以及可靠性是非常重要的,如何保障数据的安全以及数据的可靠是大多数数据库必须考虑的.2016 IDC的报告表示数据的备份 ...

  6. 备份/恢复面临的问题与解决途径

    上世纪70年代,IT革命处于萌芽阶段.那时的数据量很小,通常只有几十兆到几百兆.当时的硬盘成本更是接近天价,每兆硬盘空间的售价超过了 3000美元,购买一个容量小于10兆的硬盘所需的费用,甚至超过了一 ...

  7. 详解mysql备份恢复的三种实现方式

    一.Mysql备份策略: 完整备份: 完整备份就是指对某一个时间点上的所有数据或应用进行的一个完整拷贝,对数据量大的,备份时间较长,当然数据在恢复的时候快. 增量备份: 备份自上一次备份(包括完整备份 ...

  8. 备份恢复4.1——rman备份基础概念*

    1.RMAN备份基础: rman组件: 1.目标数据库:就是要进行备份.转储.恢复的数据库. 2.服务器进程:一般要进行rman操作,要建立两个服务器进程: 默认服务器进程用于解析rman命令,并且生 ...

  9. SQL Server备份恢复

    文章目录 一.备份 1.1 完整备份 1.2 差异备份 1.3 事务日志备份 1.4 文件和文件组备份 1.5 关于备份的关注点 1.6 三种备份方式对比 二.恢复 2.1 恢复的3种方式 2.2 还 ...

最新文章

  1. String.format()【演示具体的例子来说明】
  2. 15、Kubernetes集群资源监控
  3. java输出流输入流的使用_Java中的IO流之文件输入输出流
  4. 二叉树初始化_Java实现二叉树
  5. 华为交换机不同网段互访_华为S5700系列交换机使用高级ACL限制不同网段的用户互访...
  6. div中的p标签于img设置同一水平_前端工程师:css中一些需要注意的东西
  7. javascript设计模式-singleton(单例)模式
  8. 推广营销案例_体验式营销助力全屋WIFI推广的成功案例
  9. DSP之直接存储器访问控制器
  10. 68. 超越 Gzip 压缩
  11. Python 字典或JSON模拟数据库的增删改查
  12. kingroot android 7,KingRoot全球实现Android 7.0一键 Root
  13. 15-07-22 数据库--存储过程、触发器
  14. win iis mysql php_Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境搭建教程
  15. 按键精灵 识别html,按键精灵中分析网页元素特征字符串
  16. 净览杏蚜诰接煤檀郊炎
  17. Morgan Fairchild Makes the Most of It With 'The Graduate'
  18. HP惠普笔记本电脑暗影精灵5 OMEN by HP 15-dh0153tx原装出厂Win10系统恢复原厂OEM系统
  19. nod-1089-最长回文子串 V2
  20. 关于SG/SP, GG/GP的一点个人理解

热门文章

  1. 给开源社读者的一份信
  2. 关于OC语言基础的总结
  3. homeassistant+broadlink
  4. mysql和虚拟主机区别_mysql和虚拟主机的区别是什么
  5. MC模组发布:Joy的枪械工坊
  6. ValueError: X has 2 features, but LogisticRegression is expecting 5 features as input.
  7. 安卓应用修改系统时间
  8. 什么是归一化,它与标准化的区别是什么?
  9. 财税SaaS行业格局再变,慧算账为何能受资本“偏爱”?
  10. Shell Perl Python 脚本语言介绍