OK6410A 开发板 (三) 24 u-boot-2021.01 boot 解析 U-boot 镜像运行部分 fs-fat

发布者:koimqerolulk最新更新时间:2022-09-21 来源: csdn关键字:OK6410A  开发板  u-boo  镜像 手机看文章 扫描二维码
随时随地手机看文章

相关配置

CONFIG_CMD_FAT=y


相关文件

fs/fat/fat.c

fs/fs_internal.c

fs/fs.c

cmd/fat.c


命令及命令的使用


fatinfo   - print information about filesystem

fatload   - load binary file from a dos filesystem

fatls     - list files in a directory (default /)

fatsize   - determine a file's size



=> fatinfo mmc 0:1 

Interface:  MMC

  Device 0: Vendor: Man 0000fe Snr 00023d01 Rev: 0.0 Prod: SD16G 

            Type: Removable Hard Disk

            Capacity: 30474.0 MB = 29.7 GB (62410752 x 512)

Filesystem: FAT16 "NO NAME 


=> fatload mmc 0:1 0x50008000 uImage

1828792 bytes read in 277 ms (6.3 MiB/s)


=> fatls mmc 0:1                    

  1828792   uImage

1 file(s), 0 dir(s)


=> fatsize mmc 0:1 uImage

// 没有任何打印


命令解析

可以从命令解析的角度了解 fat fs


fatinfo

do_fat_fsinfo cmd/fat.c

blk_get_device_part_str disk/part.c

fat_set_blk_dev fs/fat/fat.c

file_fat_detectfs fs/fat/fat.c

printf("n  Device %d: ", cur_dev->devnum);

dev_print(cur_dev); disk/part.c

read_bootsectandvi(&bs, &volinfo, &fatsize) fs/fat/fat.c

memcpy(vol_label, volinfo.volume_label, 11)

vol_label[11] = '';

volinfo.fs_type[5] = '';

printf("Filesystem: %s "%s"n", volinfo.fs_type, vol_label);


fatls

do_fat_ls cmd/fat.c

do_ls fs/fs.c

fs_set_blk_dev fs/fs.c

blk_get_device_part_str disk/part.c

info->probe/fat_set_blk_dev fs/fat/fat.c

fs_ls fs/fs.c

struct fstype_info *info = fs_get_info(fs_type); fs/fs.c

info->ls(dirname);/fs_ls_generic fs/fs.c

fs_opendir fs/fs.c

struct fstype_info *info = fs_get_info(fs_type); fs/fs.c

info->opendir(filename, &dirs);/fat_opendir fs/fat/fat.c

dirs->desc = fs_dev_desc; fs/fs.c

dirs->part = fs_dev_part; fs/fs.c

while(dent = fs_readdir(dirs)) fs/fs.c

switch(dent->type){

case FS_DT_DIR:

printf("            %s/n", dent->name);break;

case FS_DT_LNK:

printf("       %sn", dent->name);break;

default:

printf(" %8lld   %sn", dent->size, dent->name);break;

}

fs_closedir fs/fs.c

printf("n%d file(s), %d dir(s)nn", nfiles, ndirs);


fatload

do_fat_fsload cmd/fat.c

do_load fs/fs.c

_fs_read fs/fs.c

fs_read_lmb_check fs/fs.c

info->read/file_fat_read_at fs/fat/fat.c

malloc_cache_aligned include/memalign.h

fat_itr_root// 填充itr fs/fat/fat.c

fat_itr_resolve fs/fat/fat.c

get_contents // 搬运数据 fs/fat/fat.c

get_cluster fs/fat/fat.c

disk_read(startsect, idx, buffer); fs/fat/fat.c

blk_dread drivers/block/blk-uclass.c

if (size)disk_read(startsect, 1, tmpbuf);

memcpy(buffer, tmpbuf, size);

printf("%llu bytes read in %lu ms", len_read, time);


应用

=> fatload mmc 0:1 51000000 2led_c.bin

1049 bytes read in 20 ms (50.8 KiB/s)

=> go 51000000

## Starting application at 0x51000000 ...

// 此时会看到 led灯闪烁

// 一定要主要加载地址和链接地址和运行地址的关系

关键字:OK6410A  开发板  u-boo  镜像 引用地址:OK6410A 开发板 (三) 24 u-boot-2021.01 boot 解析 U-boot 镜像运行部分 fs-fat

上一篇:OK6410A 开发板 (三) 25 u-boot-2021.01 boot 解析 U-boot 内存命令 md
下一篇:OK6410A 开发板 (三) 23 u-boot-2021.01 boot 解析 U-boot 镜像运行部分 DM 的一次实例分析 - 串口

推荐阅读最新更新时间:2024-11-08 01:51

STM32开发板学习日记-[3] TIM定时器输出比较
使用Timer进行周期定时 在STM32的某些应用中,用户有周期性执行某些程序的要求,使用定时器可以产生固定的时间周期,满足 这样的需求。 STM32相关特征: STM32高级定时器TIM1、TIM8,通用定时器TIM2、TIM3、TIM4、TIM5; 定时器最大时钟72MHz,配合预分频,提供灵活的时钟周期; 每个TIM有4个独立捕获/比较通道,DMA/中断功能; 通道工作在输出比较定时模式,一个TIM至多可以提供4个不同的定时周期。 原理 TIM某输出/捕获通道工作在输出比较定时模式 计数器计数至比较值时产生中断,在中断中刷新捕获比较寄存器,这样在相同时间间隔后可产生下一次中断 TIM2时钟设置为36MHz,预
[单片机]
4412开发板图像识别实战项目-移植jsoncpp库(四)
图像识别: 通过百度AI的快速入门手册,我们可以知道,如果要调用百度AI的接口,我们需要移植依赖库libcurl,openssl和jsincpp库。 环境:迅为提供的ubuntu16.04 编译器:arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 平台:迅为4412开发板 一.jsoncpp库简介 JSON全称为JavaScript ObjectNotation,它是一种轻量级的数据交换格式,易于阅读、编写、解析。jsoncpp是c++解析JSON串常用的解析库之一。 二.移植 1,解压压缩包进进入解压后的目录 tar -vxf jsoncp
[单片机]
4412<font color='red'>开发板</font>图像识别实战项目-移植jsoncpp库(四)
OK6410A 开发板 (八) 51 linux-5.11 OK6410A glibc提供的mmap与malloc
glibc 根据 rootfs中的动态链接库来源 可以看到 glibc 来自于 交叉编译工具链,且glibc版本为 glibc-2.18 我们探究一下 glibc-2.18 中 mmap 以及 malloc 函数的定义以及实现 glibc 代码 在 http://ftp.gnu.org/gnu/glibc/ mmap 简介 mmap 是glibc提供的函数,也是系统调用 应用 #include sys/mman.h void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset); int munmap(void *add
[单片机]
针对dsPIC33F和PIC24H的开发板Microstick(Microchip)
Microchip Technology Inc.(美国微芯科技公司)宣布,推出针对dsPIC33F和PIC24H的开发板Microstick,以紧凑的20 mm×76 mm的外形尺寸为使用Microchip 16位PIC24H单片机和dsPIC33F数字信号控制器(DSC)进行设计提供了一个完整的低成本解决方案。Microstick是一个低成本的集成式USB编程器/调试器,可缩短学习曲线。Microstick可以单独使用,也可以插入一个原型板中使用,有很大的灵活性。此外,教育工作者还可以享受25% 的折扣。 许多工程师、教育工作者、学生和业余爱好者都需要一个低成本解决方案对16位单片机和DSC进行编程和代码调试。除了其
[单片机]
天嵌开发板 TQ210 S5PV210 中断方式按键实现
中断在裸机开发中是非常重要的一项学习内容,之前学习过STM32的中断实现,是参考正点原子的代码,通过库函数的方式实现的,为了进一步深度理解其中的道理,此次通过天嵌的TQ210开发板实现中断方式。 具体功能为,LED正常闪烁,当按键被按下的时候,通过串口打印信息,提示按键被按下,此过程不影响LED正常闪烁。中断执行过程具体如下图: 根据示意图,可知道当有中断请求时,首先进行保护现场,然后跳到中断处理函数,执行中断处理函数当中的程序,最后进行恢复现场,程序继续运行。 通过查询开发板原理图得知,按键连接的为外部中断XEINT0,连接的芯片引脚为GPH0,具体细节如下图。 知道了硬件连接就可以进行代码编写了,具体流程
[单片机]
天嵌<font color='red'>开发板</font> TQ210 S5PV210 中断方式按键实现
蜂鸣器(HC6800-EM3 V2.2开发板
有 / 无 源 蜂鸣器 该图为:无源蜂鸣器——可以明显看出其封装顶部有 “+”,底部有 绿色电路板;(HC6800-EM3 V2.2开发板中即为无源蜂鸣器) 该图为:有源蜂鸣器——可以明显看出其封装用黑胶封闭且顶部没有“+”,底部有也没有绿色电路板; 蜂鸣器分两大类 电磁式蜂鸣器: 电磁式蜂鸣器(有源)由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。 接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。 压电式蜂鸣器: 压电式蜂鸣器(无源)主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。 多谐振荡器由晶体管或集成电路构成。当接通
[单片机]
蜂鸣器(HC6800-EM3 V2.2<font color='red'>开发板</font>)
我将GuiLite移植到了STM32F4开发板
摘要:最近在做Github找到一个有趣的开源Gui框架:GuiLite,按照说明移植了GuiLite到STM32F4OLED屏幕上,分析一下自己的移植经验。 一、GuiLite介绍 GuiLite是一个开源的Gui框架,只依赖于一个单一的头文件库(GuiLite.h),不需要很复杂的文件管理,代码量平易近人,GuiLite由4千行C++代码编写,单片机上也能流畅运行,其最低的硬件运行要求如下: CPU主频 ROM大小 RAM大小 24 MHZ 29KB 9KB 同时GuiLite具有很强的跨平台特性: 支持的操作系统:iOS/macOS/WatchOS,Android,Linux(ARM/x86-64),Windo
[单片机]
我将GuiLite移植到了STM32F4<font color='red'>开发板</font>上
OK6410A 开发板 (八) 109 linux-5.11 OK6410A tmpfs 文件系统 CONFIG_SHMEM=n & CONFIG_TMPFS=n
drivers/base/devtmpfs.c devtmpfs 分为两种实现 1. 没有定义 CONFIG_TMPFS 2. 定义了 CONFIG_TMPFS 67 static struct file_system_type internal_fs_type = { 68 .name = devtmpfs , 69 #ifdef CONFIG_TMPFS 70 .init_fs_context = shmem_init_fs_context,
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved