U-boot中定制自己的命令

     我们使用U-boot的时候,大多数都是直接编译再移植了,很少改动里面的具体内容,特别是其中包含的命令等。虽然里面包含了一些常用的提供给用户进行交互的命令,并且也比较实用了。但是,根据某些开发板的特殊操作和用户的特定需求,还是不得不去在Uboot中,添加一些供自己调试和开发的命令,这样会更方便快捷的开展工作。
     这样,就介绍一下关于如何在Uboot中,添加命令的方法和步骤。
     首先,介绍以下有关Uboot的命令定义。

     每个命令都是通过U_BOOT_CMD宏来定义的。这个宏定义了一个相关的结构体,文件是uboot/include/command.h,结构体为cmd_tbl_s。

image

    具体的命令定义为:
#define U_BOOT_CMD(name,maxargs,rep,cmd,usage,help) \
cmd_tbl_t __u_boot_cmd_##name Struct_Section = {#name, maxargs, rep, cmd, usage, help}
     每一个 U-Boot 命令有一个结构体来描述。结构体包含的成员变量:命令名称、最大参,数个数、重复数、命令执行函数、用法、帮助。
     而相关命令的具体执行在uboot/common/cmd_xxxx.c文件中实现的。

     接着,以我自己添加的MYTEST命令为例子,讲述添加命令的过程。
     1)在对应的开发板配置文件中,添加相应命令的宏定义。如:在uboot/include/configs/mx25_3stack.h文件中,添加#define CONFIG_CMD_MYTEST。

image

      当然,也可以在uboot/include/config_cmd_default.h文件中,添加该命令的宏定义。
      2)在uboot/common/目录下,建立相应的命令执行文件,如cmd_mytest.c,注意命名的规范,必须是cmd_xxx.c才行。
      里面的内容也是又格式要求的,如函数的格式,必须指定参数的;还有相应结尾部分的U_BOOT_CMD定义部分,使不能缺省的。如果命令不需要跟参数,则把maxargs设置为1即可了。

image

      在U_BOOT_CMD中指明的命令执行函数,在该函数中,就是我们要设计的命令操作内容。也就是说,这部分完成的我们定制的命令的功能的。
      还有,要在uboot/comman/Makefile文件中,加入生成相应的.o文件才可以的。
      3)重新编译uboot文件,会在uboot/common/中,生成相应的.o文件。将生成的uboot下载到开发板后,通过终端可以看到我们加入的命令。在终端中输入问号或者help命令即可。执行该命令,只学要输入命令的名字,在回车就可以运行了。
      通过在uboot中加入命令,可以完成我们的一些特定的操作,实现调试和测试目的等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ventoy 是一款短小精悍优秀开源的新型多重u盘启动盘制作工具,有了Ventoy大家就无需反复地格式化U盘,只需要把ISO文件拷贝到U盘里面无需其它任何操作就可以启动了,无需参考ventoy使用教程大家可以一次性拷贝很多个诸如微PE、老毛桃、大白菜等不同类型的ISO文件,在启动时Ventoy会显示一个菜单来选择,无差异支持Legacy BIOS和UEFI模式。目前已经测试了各类超过742个ISO文件 ventoy启动盘制作工具全面兼容包括Windows 7、Windows 8、Windows 8.1、Windows 10、Windows 11、Windows Server 2012、Windows Server 2012 R2、Windows Server 2016、Windows Server 2019、Windows Server 2022、Debian、Ubuntu、CentOS、RHEL、Deepin、Fedora、Rocky Linux、SLES、openSUSE、MX Linux、Manjaro、Linux Mint、Endless OS、DragonFly FreeBSD、pfSense GhostBSD、FydeOS、CloudReady、VMware ESXi、Citrix XenServer、Xen XCP-ng在内的所有主流系统 需要提醒大家注意点是krd.iso在 UEFI模式下是默认开启签名校验的,而Ventoy启动盘在启动时会做一些hook的动作,这些hook动作可能会被签名校验阻止,所以在UEFI模式下,大家需要在启动到卡巴斯基的启动菜单界面以后,按c进入命令行,执行“set check_signatures=no”命令,然后再按“ESC”键返回,然后继续启动即可。 Ventoy(多重u盘启动盘制作工具)特色功能简介: 100% 开源 (许可证) 使用简单 (使用说明) 快速 (拷贝文件有多快就有多快) 可以安装在 U盘/本地硬盘/SSD/NVMe/SD卡等设备上 直接从 ISO/WIM/IMG/VHD(x)/EFI 文件启动,无需解开 ISO/WIM/IMG/VHD(x)/EFI 文件在磁盘上无需连续 支持MBR和GPT分区格式 同时支持 x86 Legacy BIOS 以及 IA32/x86_64/ARM64/MIPS64 UEFI UEFI 模式支持安全启动 (Secure Boot) 说明 支持数据持久化 说明 支持Windows系统的自动安装部署 说明 支持 RHEL7/8/CentOS7/8/SUSE/Ubuntu Server/Debian 等Linux系统的自动安装部署 说明 镜像分区支持 FAT32/exFAT/NTFS/UDF/XFS/Ext2(3)(4) 文件系统 支持超过4GB的ISO文件 保留ISO原始的启动菜单风格(Legacy & UEFI) 支持大部分常见操作系统, 已测试740+ 个ISO文件 不仅仅是启动,而是完整的安装过程 菜单可以在列表模式和目录树模式之间实时、动态切换 说明 提出 "Ventoy Compatible" 概念 支持插件扩展 Linux vDisk(vhd/vdi/raw...) 启动解决方案 支持向运行环境插入文件 动态替换ISO文件的原始启动配置文件 高度可定制化的主题风格和菜单 启动过程支持U盘设置保护 不影响U盘日常普通使用 版本升级时数据不会丢失 无需跟随操作系统升级而升级Ventoy
更新说明: V1.70 1.改进了对于大容量U盘的操作 ================================================ V1.68 1.增加导出重要扇区功能,供改进软件用 ================================================ V1.67 1.支持多合一读卡器的制作,能找到读卡器的有卡插槽 2.在多处增加了数据可能丢失的警告 ================================================ V1.66 1.增加保护跳过对话框,允许用户跳过保护提示 2.增加备份和恢复磁盘的功能,类似克隆 3.可自定制启动文件包 ================================================ V1.65 1.增加保护检测功能 2.提示拔盘时首先软件弹出U盘 3.在WMI不能使用时枚举磁盘 ================================================ V1.64 1.在C盘根目录生成日志文件,以调查打不开磁盘的问题 ================================================ V1.63 1.对设备名太长不予列出 2.提示文字考虑其长度,以免超出提示框 3.对不支持的方式不禁用 4.增加TIP提示完整信息 5.增加了多语言支持功能 ================================================ V1.62 1.解决了ZIP模式兼容性问题 2.增加了“固定磁盘”和“移动磁盘”的图标提示 3.对HDD/ZIP/FDD模式的应用范围做了限制 4.向磁盘增加MSDOS.SYS以避免启动时出现WINDOWS菜单 ================================================ V1.61 1.解决了取消格式化后无法操作的问题 2.编了使用说明 ================================================ V1.6 1.解决了磁盘容量问题,现在可以准确计算出U盘的容量 了,已在多种U盘上进行试验 2.增设了“引导处理”功能,可以不损伤原有数据使其 能够引导,类似DOS的SYS.COM命令 3.读取U盘的名称 4.根据接口类型判断U盘,而不是根据容量或者移动属性 判断,这样USB硬盘盒也可处理,而IDE硬盘不会被误操作 5.更新了引导区启动代码,USB-FDD模式可用了,在SIS630 主板上验证通过(AMI BIOS,仅支持USB-FDD) ================================================ V1.5 1.解决了“磁盘未格式化”的问题,凡是使用USBoot后 提示说磁盘未格式化的朋友请重新试用。 ================================================ V1.4 各位热心网友,请试用新的ZIP方式和FDD方式,HDD方 式未作变更,不必试验了。 1.增加了“重置”功能,如果发现USBOOT设置的参数不对 可以使用此功能将U盘的引导扇清空,然后用原配工具重 新格式化; 2.将原来的ZIP方式更名为FDD方式,增加了ZIP方式,ZIP 方式和HDD方式均有分区表,但ZIP方式参数和HDD方式不 同;从一些热心网友反馈的数据看,各种不同U盘之间参 数差别很大,大体分为32扇和63扇两类。 3.增加了自动停止U盘功能,不用等待U盘灯灭,只要提示 拔盘即可动手了; 其实和ZIP或HDD并无实质区别,一些PC根本就不设置 USB-ZIP还是USB-HDD,只有一个USB-STORAGE启动; U盘启动和PC关系很大,有的PC无论用什么参数都可以 启动,有的则很挑;同样的U盘在这台机器可以,在另 一台试遍FDD/ZIP/HDD都不行;筹划采用一种统一的方式, 彻底解决这个问题; ================================================ V1.3 由于暂时无法获得磁盘“剩余扇”,因此做了一个 额外处理,将用柱面数弥补剩余扇,这样可以减少磁盘 空间减少的情况,但是请大家注意,磁盘空间可能会多 计算!对于16M的盘误差很小,对于32M的盘误差在4M左 右,对于128M的盘误差在8M左右。后果是当磁盘接近满 时,会提示找不到对应扇区,但是不会浪费U盘的空间了! ================================================ V1.2

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值