imx6ull固化和更新uboot、zImage和dtb方法---超详细总结

news2024/9/21 20:52:13

目录

一、固化系统

1. 使用mfgtool上位机固化系统

1.1 mfgtool固化系统到 SD 卡

1.2 mfgtool固化系统到 eMMC

1.3 mfgtool固化系统到 NAND FLASH

2.使用脚本固化系统

2.1脚本固化系统到 SD 卡

2.2 脚本固化系统到 eMMC

2.3 脚本固化系统到 NAND FLASH

二、更新系统

1. u-boot下更新

1.1 u-boot下更新u-boot镜像

1.2 uboot下更新kernel和dtb

1.3 u-boot启动linux内核方式

2. Linux系统中更新

2.1 Linux系统中更新u-boot

2.2 Linux系统中更新kernel和dtb


往期精彩文章推荐:

1. u-boot移植:详细讲解移植u-boot.2022.10版本到imx6ull开发板

2.详细讲解u-boot之网络移植与调试

3.u-boot启动流程分析-史上最全最详细

4.u-boot命令之EMMC和SD卡操作命令详解

5.移植Linux 6.3.5系统到imx6ull开发板

6.rootfs根文件系统制作及挂载方法-详解

7.Linux中磁盘管理之格式化、分区、挂载-详解
 

        进行固化和更新的前提,uboot.imxzImageimx6ull.dtbrootfs已经编译好,并且能成功启动和挂载。

        在讲解imx6ull固化和更新uboot、zImage和dtb方法之前,先带大家了解一些imx6ull的分区情况以及各自的作用。

        imx6ull eMMC分区,如下图:

EMMC有三个分区:

  • 0分区(/dev/mmcblk1boot0):EMMC的0分区前两个块 (扇区 ),里面保存着分区表,从第三块开始存放uboot;

  • 1分区(/dev/mmcblk1p1):存放Linux内核kernel和dtb设备树;

  • 2分区(/dev/mmcblk1p2):存放rootfs根文件系统。

一、固化系统

1. 使用mfgtool上位机固化系统

        把MFG_TOOL出厂固件烧录工具mfgtool文件拷贝到PC机。

        imx6ull启动方式的拨码开关,对应关系如下表:

启动方式拨码开关
USB OTG 烧写0100 0000
SD 卡启动1000 0010
EMMC 启动1010 0110
NAND FLASH 启动1000 1001
  • 注: OFF 为 0, ON 为 1;【D0-D1-D2-D3-D4-D5-D6-D7-D8】

        底板拨码开关(BOOT_CFG)设置如下,参考 BOOT_CFG,设置为 USB 连接方式,“1”代码 ON,“0”代表“OFF”。将拨码数字 2 处拨到 ON,其他的为 OFF。如下图:

        使用 USB 连接线连接底板的 USB_OTG 接口与 PC 机(电脑)。

        进入 mfgtool 文件夹,查看 vbs 脚本信息,如下图:

        之所以有那么多不同的 vbs 脚本,是根据固化的需求提供不同固化的方式。我们根据个人的核心板类型不同选择不同的 vbs 脚本固化系统就可以了。 (注意,最好不要将mfgtool 放在中文路径下运行! )。

        这里简单介绍这些 vbs 脚本文件的作用, vbs 脚本所命名的解释如下图:

1.1 mfgtool固化系统到 SD 卡

        准备一张 SD 卡(这里用的 TF 小卡),(注意将会格式化 SD 卡,注意备份好重要数据)。按前面的 vbs 脚本命名解释,比如我们需要从 SD 卡启动,确认核心板存储介质为 eMMC,DDR 容量为 512MB。

        那么我们就选择双击 Mfgtool2-eMMC-ddr512-SDCard.vbs 进行烧写,界面如下:

        按上面 mfgtool 使用前准备说明步骤操作后,打上底板电源开关。如果是第一次使用开发板 OTG 连接PC机(电脑),需要等待 PC 机自动安装驱动。(点击右下角正在安装驱动的小图标, 不要让 winodws 去从 windows update 里去找驱动,点击跳过, 驱动自然会装上。否则用了 windows update 里的驱动,可能在烧写过程中会卡住,不往下跑。)等待安装驱动完成后,mfgtool 上位机界面会提示已经连接到设备 HID-compliant device,(注意请不要打开虚拟机,如果虚拟机正在开启, otg 会连接到虚拟机上去。 在烧写时,如果遇到杀毒报错,建议关闭杀毒软件! ) 如下图:

        此时将 SD 卡插入卡槽(如果您的 SD 卡原先已经有系统,需开发板先上电后再将 SD 卡插进卡槽,否则上电时会从 SD 卡启动您的系统, 这样 mfgtool 会连接不到开发板设备),如下图插上 SD 卡 :

        直接点击 mfgtool 的 Start 按钮进行固化系统到 SD 卡。下图为点击 Start 按钮后的截图。固化系统到 SD 卡需要几分钟时间,请耐心等待。

        固化过程如下, 正在写入文件系统:

        固化完成如下图,点击 Stop 后再点 Exit 退出 mfgtool 上位机软件即可。

        测试从 SD 卡启动系统,拨码开关拨至 SD 卡启动方式 10000010,启动系统即可。

1.2 mfgtool固化系统到 eMMC

        双击 Mfgtool2-eMMC-ddr512-eMMC.vbs这个 vbs 脚本文件进行固化,步骤参考1.1mfgtool固化系统到 SD 卡的步骤,固化完成后,将拨码开关拨至 eMMC 启动方式 10100110,启动系统即可。

        使用前提:用户核心板类型带 eMMC存储介质。请确认您的 ddr 大小为 512MB或者 256MB,目前本人的开发板为 eMMC 核心板 ddr 大小是 512MB。

1.3 mfgtool固化系统到 NAND FLASH

        双击 Mfgtool2-NAND-ddr256-NAND.vbs 这个 vbs 脚本文件进行固化,步骤参考1.1mfgtool固化系统到 SD 卡的步骤,固化完成后,将拨码开关拨至 NANDFLASH 启动方式 10001001,启动系统即可。

        使用前提:用户核心板类型带 NAND FLASH 存储介质。 请确认您的 ddr 大小为 512MB 或者 256MB。

2.使用脚本固化系统

        脚本固化系统一般可用于批量固化与升级系统。不像 mfgtool 上位机那样还需要 PC 机和USB 数据线,用户可以自行修改好固化系统脚本,进行自动化固化测试,那么可以无需专业人员参与,即可批量固化系统。

2.1脚本固化系统到 SD 卡

        将MFG_TOOL 烧写工具mfgtool的files 整个文件夹到 Ubuntu 虚拟机,如下图:

        使用 chmod 指令修改固化 SD 卡系统脚本 imx6mksdboot.sh 的权限

chmod +x imx6mksdboot.sh

        将 SD 卡用读卡器插到 Ubuntu 虚拟机,等待 Ubuntu 主机识别后,如下图。(因作者已经制作过 SD 卡,所以 Ubuntu 主机会识别出两个分区,如果您的 SD 卡是空白的,只有一个分区时就识别出一个分区,就会看到只有一个 USB 图标(可能图案不一样)) 。

        输入如下指令查看 SD 卡挂载节点,如下图,作者的 SD 卡容量是 8GB 的(7984MB≈8GB),可以看到挂载的节点为/dev/sdb

sudo fdisk -l

        直接执行./imx6mksdboot.sh --help 查看脚本的使用方法

用法说明:

用法: imx6mksdboot.sh [选项] <(必选)-device> <(可选)-flash> <(可选)-ddrsize>
  • -device:指明设备节点(SD 卡挂载的节点如/dev/sdx),执行脚本时必需要加这个参数

  • -flash:指明核心板上的媒体存储介质,可选为(emmc|nand)

  • -ddrsize:指明核心板上的 ddr 容量大小,可选为(512|256)MB

        当前 ddr 容量大小是 512MB,媒体存储介质是 eMMC。 SD 卡挂载节点为/dev/sdb。那么固化 SD 卡的指令如下,执行指令后脚本会有中文再次询问 SD 卡所挂载的节点是否对应,将会清空 SD 卡上的所有数据,请注意备份重要的数据。按 Enter 键确认后继续,固化 SD 卡需要大约需要几分钟时间,这里根据个人电脑不同和所用 SD 卡不同,可能花费的时间差异比较大。

sudo ./imx6mksdboot.sh -device /dev/sdb -flash emmc -ddrsize 512

        固化时有中英文结合,提示固化的过程,固化完成如下图:

        完成固化后,将 SD 卡卸载后再取出,单击 USB 图标,点击“2”处小三角卸载退出后直接拔出读卡器。

        测试从 SD 卡启动系统,拨码开关拨至 SD 卡启动方式 10000010,启动系统即可。

2.2 脚本固化系统到 eMMC

        这里使用脚本固化系统到 eMMC 需要使用 2.1 制作好的 SD 系统启动卡。将MFG_TOOL 烧写工具mfgtool的files 整个文件夹到制作好的 SD 系统启动卡里面的/home/root 目录(本文拷贝到/home/root 目录,读者可任意目录)。如下图:

        修改 eMMC 固化脚本的权限

chmod +x im6mkemmcboot.sh

        执行./imx6mkemmcboot.sh --help 查看脚本的使用说明

        使用 fdisk 指令查看 eMMC 挂载节点,一般挂载节点为/dev/mmcblk1,本文测试的 eMMC为 8GB 存储容量的。可以看到下图/dev/mmcblk1 就是 eMMC 的挂载节点。

fdisk -l

用法说明:

用法: imx6mkemmcboot.sh [选项] <(必选)-device> <(可选)-ddrsize>
  • -device:指明设备节点(eMMC 挂载的节点如/dev/mmcblk1),执行脚本时必需要加这个参数

  • -ddrsize:指明核心板上的 ddr 容量大小,可选为(512|256)MB

        当前的 ddr 容量大小是 512MB, eMMC 挂载节点为/dev/mmcblk1。那么固化的指令如下,执行指令后脚本会有中文再次询问 eMMC 所挂载的节点是否对应,将会清空eMMC 上的所有数据,请注意备份重要的数据。按 Enter 键确认后继续,固化系统到 eMMC 需要大约需要几分钟时间。

./imx6mkemmcboot.sh -device /dev/mmcblk1 -ddrsize 512

固化系统完成如下图:

        固化完成后,将拨码开关拨至 eMMC 启动方式 10100110,启动系统即可。

2.3 脚本固化系统到 NAND FLASH

        这里使用脚本固化系统到 eMMC 需要使用 2.1 制作好的 SD 系统启动卡。将MFG_TOOL 烧写工具mfgtool的files 整个文件夹到制作好的 SD 系统启动卡里面的/home/root 目录(本文拷贝到/home/root 目录,读者可任意目录)。如下图:

        使用 cat 指令查看 MTD 分区表,打印结果如下图表示存在 Nand Flash。

        修改 NandFlash 固化脚本的权限

chmod +x imx6mknandboot.sh

        执行./imx6mknandboot.sh --help 查看脚本的使用说明

用法说明:

用法:imx6mknandboot.sh [选项] <(可选)-ddrsize>
  • -ddrsize:指明核心板上的 ddr 容量大小,可选为(512|256) MB。

        当前 ddr 容量大小是 256MB,那么固化的指令如下。这将会清空 NandFlash上的所有数据,请注意备份重要的数据。按 Enter 键确认后继续,固化系统到 NandFlash 需要大约需要几分钟时间。

./imx6mknandboot.sh -ddrsize 256

固化系统完成如下图:

        固化完成后,将拨码开关拨至 Nand Flash 启动方式 10001001,启动系统即可。

二、更新系统

        当我们在开发过程中,可能随时会更具需求或功能修改编译u-boot和Linux内核或者根文件系统,这个时候不可能每次修改后都采用上面固化的方式,这样太耗时,此时就需要用到简单且很方便的方法救把新的镜像更换掉旧的,下面救给大家介绍一些常用的更新方法。

1. u-boot下更新

1.1 u-boot下更新u-boot镜像

        uboot下更新eMMC、SD卡中的u-boot镜像需要使用tftp+mmc命令,具体如下: 搭建tftp服务器:PC:tftpd32服务器;u-boot下自带tftp功能。

  • 更新eMMC中的u-boot
1.tftp 0x80800000 u-boot.imx   ------通过tftp将u-boot.imx下载到内存中
2.mmc dev 1 0                  ------切换操作emmc的分区0
3.mmc write 80800000 2 33e     ------将内存中u-boot.imx烧写到emmc的分区0的第3个存储块(424960/512(块大小) = 0x33E)
4.mmc partconf 1 1 0 0         ------分区配置,EMMC 需要这一步!
5.reset                        ------复位,启动更新后的uboot

        注意:eMMC的分区1的前2个块存放的是MBR(分区表),不要向这两个块写数据。如果不小心写了,可以使用mfgtool工具重新给emmc使用USB下载数据即可恢复。

  • 更新SD卡中的u-boot:
1.tftp 0x80800000 u-boot.imx    ------通过tftp将u-boot.imx下载到内存中
2.mmc dev 0 0                   ------切换操作SD的分区0
3.mmc write 80800000 2 33e      ------将内存中u-boot.imx烧写到SD的分区1的第3个存储块(424960/512(块大小) = 0x33E)
4.reset                         ------复位,启动更新后的uboot

1.2 uboot下更新kernel和dtb

  • 更新eMMC中的kernel和dtb:

tftp 0x80800000 zImage;           ------通过TFTP从网络下载zImage文件到内存地址0x80800000
fatwrite mmc 1:1 80800000 zImage 0x552f30(实际文件大小)

tftp 0x83000000 imx6ull-toto.dtb  ------通过TFTP从网络下载imx6ull-toto.dtb文件到内存地址0x83000000
fatwrite mmc 1:1 83000000 imx6ull-toto.dtb 0x8d6a(实际文件大小)

fatwrite命令参数解释如下:

  • fatwrite:这是 U-Boot 命令,用于将文件写入 FAT 文件系统分区。

  • mmc 0:1:指定要写入的存储设备和分区,mmc 表示使用 MMC 存储设备(例如 SD 卡或 eMMC),

  • 1:1 表示使用设备编号 1 的第1个分区。

  • 83000000:指定数据文件在内存中的地址。0x83000000 表示数据将从内存地址 0x83000000 开始。

  • imx6ull-toto.dtb:这是要写入的文件名。

  • 0x8d6a:这是要写入的文件大小(以字节为单位)。0x8d6a 表示文件的大小为 0x8d6a 字节。

  • 更新SD卡中的kernel和dtb:

tftp 0x80800000 zImage;
fatwrite mmc 0:1 80800000 zImage 0x552f30(实际文件大小)

tftp 0x83000000 imx6ull-toto.dtb
fatwrite mmc 0:1 83000000 imx6ull-toto.dtb 0x8d6a(实际文件大小)

1.3 u-boot启动linux内核方式

u-boot下不同方式启动linux内核和rotofs挂载方式需要bootcmd 和 bootargs 这两个环境变量进行设置。

  • 从网络启动 Linux 系统和NFS挂载rootfs

setenv bootcmd 'tftp 80800000 zImage; tftp 83000000 imx6ull-toto.dtb; bootz 80800000 - 83000000'
setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs rw 
nfsroot=192.168.0.105:/home/ubuntu/My_WorkSpace/Linux/nfs/rootfs 
ip=192.168.0.123:192.168.0.105:192.168.0.1:255.255.255.0::eth0:off'
saveenv
  • 从sd启动 Linux 系统和挂载rootfs

setenv bootargs 'console=ttymxc0,115200 root=/dev/mmcblk0p2 rootwait rw'
setenv bootcmd 'mmc dev 0; fatload mmc 0:1 80800000 zImage; fatload mmc 0:1 83000000 imx6ull-toto.dtb; bootz 80800000 - 83000000;'
saveenv
  • 从EMMC启动 Linux 系统和挂载rootfs

setenv bootargs 'console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw'
setenv bootcmd 'mmc dev 1; fatload mmc 1:1 80800000 zImage; fatload mmc 1:1 83000000 imx6ull-toto.dtb; bootz 80800000 - 83000000;'
saveenv

2. Linux系统中更新

2.1 Linux系统中更新u-boot

  • 更新SD卡中的u-boot:

dd if=u-boot.imx of=/dev/mmcblk0 bs=1024 seek=1 conv=fsync
  • 更新eMMC中的u-boot:

echo 0 > /sys/block/mmcblk1boot0/force_ro                        ------Enable writes to /dev/mmcblk1boot0
dd if=/dev/zero of=/dev/mmcblk1boot0                             ------Precaution: Erase entire eMMC boot region.
dd if=u-boot.imx of=/dev/mmcblk1boot0 bs=1024 seek=1 conv=fsync  ------Copy U-Boot to eMMC boot region.
echo 1 >/sys/block/mmcblk1boot0/force_ro                         ------Disable writes to /dev/mmcblk1boot0

2.2 Linux系统中更新kernel和dtb

  • 更新SD卡中的kernel和dtb:

/ # mount /dev/mmcblk0p1 /mnt/boot/
/ # ls /mnt/boot/
imx6ull-toto.dtb  zImage

用最新的zImage和imx6ull-toto.dtb替换到/mnt/boot/文件中的zImage和imx6ull-toto.dtb即可。
  • 更新eMMC中的kernel和dtb:

/ # mount /dev/mmcblk1p1 /mnt/boot/
/ # ls /mnt/boot/
imx6ull-toto.dtb  zImage

用最新的zImage和imx6ull-toto.dtb替换到/mnt/boot/文件中的zImage和imx6ull-toto.dtb即可。

        今天的内容到此就完了,感谢大家的收看,如有不正之处,欢迎批评指正,下期再见!

        今天的内容到这就结束了,感谢大家的收看,如果觉得文章写的还不错,可以点击“赞赏”,来鼓励一下老王哦,当然,也可以点赞,收藏加关注哦!我们下期再见!


        关于更多嵌入式C语言、FreeRTOS、RT-Thread、Linux应用编程、linux驱动等相关知识,关注公众号【嵌入式Linux知识共享】,后续精彩内容及时收看了解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/659630.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

用Midjourney画“球迷冲进球场拥抱梅西“事件

作者 | 兔子酱 最近&#xff0c;被“球迷冲进球场拥抱梅西”刷屏了!在阿根廷对战澳大利亚北京工体友谊赛上&#xff0c;一名中国“狂热少年”冲进球场&#xff0c;成功拥抱了梅西&#xff0c;甚至摆出了拍照姿势。拥抱后在球场狂奔&#xff0c;还有大马丁击了掌&#xff0c;最后…

C++学习之STL vector

Vector是什么&#xff1f; 问chatgpt看看是什么回答&#xff1f; ChatGPT&#xff1a; C中的vector是标准库&#xff08;STL&#xff09;提供的一种动态数组容器。它能够在运行时根据需要自动调整大小&#xff0c;并且可以存储不同类型的元素。 使用vector&#xff0c;您可…

Java虚拟机——HotSpot的算法实现细节

根节点枚举 在可达性分析算法中从GC Roots集合中找引用链非常的麻烦 。固定可作为GC Roots的节点主要在全局性的引用&#xff08;例如常量或类静态属性&#xff09;与执行上下文&#xff08;栈帧的本地变量表&#xff09;中。当Java应用很大的时候&#xff0c;类和常量数量很多…

了解redis以及其基本命令

目录 1 编译安装2 启动3 redis 是_3.1 远程字典服务3.2 内存数据库3.3 kv数据库3.4 数据结构数据库3.4.1 string 是一个安全的二进制字符串&#xff1b;3.4.2 双端队列 &#xff08;链表&#xff09; list &#xff1a;有序&#xff08;插入有序&#xff09;&#xff1b;3.4.3 …

Dubbo的10种集群容错模式

学习Dubbo源码的过程中&#xff0c;首先看到的是dubbo的集群容错模式&#xff0c;以下简单介绍10种集群容错模式 1.AvailableCluster 顾名思义&#xff0c;就是可用性优先&#xff0c;遍历所有的invokers&#xff0c;选择可用的 2.MergeableCluster:当接口需要多个服务组合返回…

陌生人,可以看一看你最近复制了什么吗?

DDoS 攻击采用分布式的方式进行&#xff0c;攻击者通常会控制网络中许多终端或服务器&#xff0c;这些终端或服务器同时向被攻击目标发送大量的请求&#xff0c;被攻击目标无法判断这些请求来源的合法性&#xff0c;因此会无法正常处理这些请求&#xff0c;而导致服务中断&…

Web前端开发技术储久良第三版课后答案

P16-第1章 练习与实验答案 练习1 1.选择题 (1)B (2)B (3)B (4)D (5)A 2.填空题 (1)标记、文本 (2)Tim Berners-Lee&#xff08;蒂姆伯纳斯李&#xff09; (3)查看 (4)NotePad、EditPlus、TextPad、TopStyle、UltraEdit等 (5)超文本标记语言、统一资源定位符&#xff08;器&am…

Fiddler如何比较两个接口请求?

进行APP测试时&#xff0c;往往会出现Android和iOS端同一请求&#xff0c;但执行结果不同&#xff0c;这通常是接口请求内容差异所致。 如果你想学习Fiddler抓包工具&#xff0c;我这边给你推荐一套视频&#xff0c;这个视频可以说是B站播放全网第一的Fiddler抓包工具教程&…

多模态对比互学习和伪标签再学习半监督医学图像分割

文章目录 Multi-modal contrastive mutual learning and pseudo-label re-learning for semi-supervised medical image segmentation摘要本文方法实验结果总结 Multi-modal contrastive mutual learning and pseudo-label re-learning for semi-supervised medical image segm…

Linux系统之部署Yearning SQL审核平台

这里写目录标题 一、Yearning介绍1.1 Yearning简介1.2 Yearning特点1.3 Yearning功能 二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍 三、检查本地环境3.1 检查操作系统版本3.2 检查系统内核版本3.3 检查Docker版本 四、部署mysql数据库4.1 创建数据目录4.2 创建mysql数据…

【计网】第一章 计算机网络概述

文章目录 计算机网络概述一、计算机网络在信息时代中的作用二、互联网概述2.1 互连网概念2.2 网络的网络2.3 互连网基础结构发展的三个阶段2.4 互连网的标准化工作 三、互联网的组成3.1 互联网的边缘部分3.2 互联网的核心部分3.2.1 基础概念3.2.2 电路交换3.2.3 报文交换3.2.4 …

全网最全的以太坊ERC4626协议解析-ERC4626 - yield-bearing vaults

收益性存款 ERC4626 协议是一种用于代币化保险库的标准&#xff0c;它可以优化和统一收益保险库的技术参数。收益保险库是指使用不同策略来为用户提供最佳收益的合约&#xff0c;例如借贷市场、聚合器或本身具有利息的代币。ERC4626 协议提供了一个标准的 API&#xff0c;用于表…

html实现好看的个人介绍,个人主页模板5(附源码)

文章目录 1.设计来源1.1 主界面1.2 我的介绍界面1.3 我的能力界面1.4 项目案例界面1.5 联系我界面 2.效果和源码2.1 动态效果2.2 源代码2.3 源代码目录 源码下载 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_43151418/article/details/13127331…

DJ4-4 CIDR、DHCP

目录 一、分类 IP 方法的问题 二、CIDR 1、CIDR 定义 2、CIDR 地址划分 三、DHCP 1、DHCP 概述 2、DHCP 工作过程 3、DHCP&#xff1a;C/S 场景 4、DHCP&#xff1a;不仅获得 IP 地址 四、组织机构获取 IP 地址 一、分类 IP 方法的问题 A 类的 IP 地址&#xff0c;有…

一天学完Java,主要记录difference

Java学习记录 Java中的内存区域划分Java中的包&#xff08;package&#xff09;Java中的枚举&#xff08;Enum&#xff09;Java中的包装类Java中的Math数学计算类Java中的Random&UUIDJava中的format数字格式化Java中字符串和数字的转换Java中的高精度计算Java中的String操作…

安装Ubuntu系统详细教程

一. 前言 本篇文章详解介绍一下如何安装Ubuntu系统&#xff0c;笔者在安装的过程中踩过很多坑&#xff0c;重装了很多次&#xff0c;现在把安装过程中遇到的问题也列出来&#xff0c;供大家参考。 二. 准备工作 这个环节很重要&#xff0c;工欲善其事&#xff0c;必先利其器。 …

数据结构--》从数据结构开始,打好算法基础

目录 数据结构的基本概念 数据结构的三要素 算法的基本概念 数据结构的基本概念 在学习某个知识之前&#xff0c;我们是否都有问过自己我们到底在学习的目的是什么&#xff1f;学习数据结构也一样&#xff0c;我们学习数据结构主要是为了用程序把现实世界的问题信息化&#…

银行项目软件测试中都测哪些内容呢?

在我们的日常在金融或银行软件测试工作中都有哪些内容需要测试&#xff1f;在这些测试的内容中如何去更好的掌握测试技能保证测试质量&#xff0c;一起来学习探讨交流。 如果你想拿到性能项目&#xff0c;可以进一下这个群&#xff1a;798478386 下面为银行测试点的概括&am…

php个人简历模板

php个人简历模板一 目前所在&#xff1a; 广州 年 龄&#xff1a; 31 户口所在&#xff1a; 汕头 国 籍&#xff1a; 中国 婚姻状况&#xff1a; 已婚 民 族&#xff1a; 汉族 身 高&#xff1a; 175 cm 体 重&#xff1a; 求职意向 人才类型&#xff1a; 普通求职 应聘职…

软件工程——第1章软件工程学概述知识点整理

本专栏是博主个人笔记&#xff0c;主要目的是利用碎片化的时间来记忆软工知识点&#xff0c;特此声明&#xff01; 文章目录 1.为什么要有软件工程这门学科&#xff1f; 2.软件分为哪些阶段&#xff1f; 3.软件危机的定义&#xff1f; 4.软件危机包含的问题有哪些&#xff…