MTK文件读写相关

安卓R SD卡速率比安卓Q对比机速率下降 安卓R相比安卓Q由于采用了fuse用户态文件系统,以及上层加密,所以性能会下降20%到50% 可以通过mount命令看到sd卡挂载的type在安卓R上面是fuse,在安卓Q上是sdcardfs MTK有办法通过命令关闭fuse文件系统 https://online.mediatek.com/FAQ#/SW/FAQ24750 adb rootadb shell setprop persist.sys.fflag.override.settings_fuse falseadb shell setpr 阅读详情

文件操作函数的头文件为 fs_func.h
常用的文件操作函数有:
extern int FS_Open(const WCHAR * FileName, UINT Flag);
extern int FS_Close(FS_HANDLE FileHandle);
extern int FS_Read(FS_HANDLE FileHandle, void * DataPtr, UINT Length, UINT *Read);
extern int FS_Write(FS_HANDLE FileHandle, void * DataPtr, UINT Length, UINT *Written);
extern int FS_Seek(FS_HANDLE FileHandle, int Offset, int Whence);
extern int FS_Commit(FS_HANDLE FileHandle);
extern int FS_Delete(const WCHAR * FileName);
extern int FS_GetCurrentDir(WCHAR * DirName, UINT MaxLength);
extern int FS_SetCurrentDir(const WCHAR * DirName);
extern int FS_CreateDir(const WCHAR * DirName);
extern int FS_RemoveDir(const WCHAR * DirName);
extern int FS_FindFirst(const WCHAR * NamePattern, BYTE Attr, BYTE AttrMask, 
              FS_DOSDirEntry * FileInfo, WCHAR * FileName, UINT MaxLength);
extern int FS_FindNext(FS_HANDLE FileHandle, FS_DOSDirEntry * FileInfo, WCHAR *
              FileName, UINT MaxLength);

文件操作所用到的数据结构有都放在fs_type.h里,如FS_Open的第二个参数(也即打开模式)列表

如下:
#define FS_READ_WRITE             0x00000000L
#define FS_READ_ONLY               0x00000100L
#define FS_OPEN_SHARED           0x00000200L
#define FS_OPEN_NO_DIR           0x00000400L
#define FS_OPEN_DIR                 0x00000800L
#define FS_CREATE                     0x00010000L
#define FS_CREATE_ALWAYS        0x00020000L
#define FS_COMMITTED               0x01000000L
#define FS_CACHE_DATA              0x02000000L
#define FS_LAZY_DATA                0x04000000L
#define FS_NONBLOCK_MODE       0x10000000L
#define FS_PROTECTION_MODE     0x20000000L

文件操作的返回值定义放在文件fs_errcode.h,如:
#define FS_NO_ERROR                       0
#define FS_ERROR_RESERVED             -1
#define FS_PARAM_ERROR                  -2    /* User */
#define FS_INVALID_FILENAME            -3    /* User */
#define FS_DRIVE_NOT_FOUND           -4    /* User or Fatal */
#define FS_TOO_MANY_FILES             -5    /* User or Normal: use over max file

                                                         handle number or more than 256 files in sort */
#define FS_NO_MORE_FILES                 -6    /* Normal */
#define FS_WRONG_MEDIA                   -7    /* Fatal */
#define FS_INVALID_FILE_SYSTEM           -8    /* Fatal */
#define FS_FILE_NOT_FOUND                -9    /* User or Normal */
#define FS_INVALID_FILE_HANDLE          -10    /* User or Normal */
#define FS_UNSUPPORTED_DEVICE           -11    /* User */
#define FS_UNSUPPORTED_DRIVER_FUNCTION  -12    /* User or Fatal */
#define FS_CORRUPTED_PARTITION_TABLE    -13    /* fatal */
#define FS_TOO_MANY_DRIVES                   -14    /* not use so far */
#define FS_INVALID_FILE_POS                    -15    /* User */
#define FS_ACCESS_DENIED                        -16    /* User or Normal */
#define FS_STRING_BUFFER_TOO_SMALL      -17    /* User */

如果返回值大于0,说明返回正确。

文件操作函数实现放在FSSim_core.c里:如:
int FS_Close(FS_HANDLE File)
{
    int  map_fh=0;

    /* verify file handle */

    if (File > FSSIM_MAX_FILE || File <= 0)

        return FS_INVALID_FILE_HANDLE;

    else if (fssim_file[File].state != STATE_INUSE)

        return FS_INVALID_FILE_HANDLE;

    else if (fssim_vfgen.link[File] > 0)

        map_fh = fssim_vfgen.link[File];

    else if (fssim_file[File].handle == INVALID_HANDLE_VALUE)

        return FS_INVALID_FILE_HANDLE;

    /* close the file handle */
    fssim_take_mutex(fssim_mutex); /* critical section { */
    if (map_fh > 0) {

        fssim_vfgen.link[File] = 0;

    } else {

        fssim_close_fh(File);
    }
    fssim_give_mutex(fssim_mutex); /* critical section } */

    fssim_free_fh(File);



    return FS_NO_ERROR;
}

  **文件系统
MTK使用FAT文件系统,对于模拟器文件系统放在目录WIN32FS下,如DRIVE_C、DRIVE_D等等。例如:
FS_Open(L"C:/a.txt", FS_READ_ONLY);
上面语句以读模式打开C盘下的a.txt文件,文件名的字符编码是UCS-2。

MTK平台Android9.0 NVRAM的读写---上层实现SN和MAC读写 前言 MTK平台有自己的序列号和MAC地址烧录工具,但只能用于个人的调试,如果产品要量产,还使用MTK平台自己的烧录工具,则就不合适了,因为满足不了工厂生产的一些客制化功能,比如SN号和MAC地址拼凑在一起同时烧录,MTK烧录工具就做不到。那么就需要设备厂商自己开发烧录工具了。本文就是解决MTK 平台Android9.0上如何通过应用层来进行读写SN号和MAC地址。 概述 在MTK平台中,SN号和MAC地址都是保存在NVRAM中的,所以读写SN号和MAC地址,实际上就是对NVRAM进行读写操作。而在Andr 阅读详情

相关推荐

MTK创建路径及文件读写测试

MTK创建路径及文件读写测试例程 提供一个MTK在FAT中创建路径及文件读写测试例程。 #define FILE_LEN_MAX 1024 #define S8 signed char #define U16 unsigned short //路径中带L和不带L的区别 //个人认为带L的路径代表的编码方式为Unicode,否则为ascii编码,没有相关资料证明,但软件测试结果通过。 #...

Liam 973

OPC UA常见故障信息代码

OPC UA常见故障信息代码 下表包含了状态接线端返回的代码的说明。 info code 描述 好 0x00000000 操作成功。 不确定 0x40000000 值不确定,但原因不明。 坏 0x80000000 值为坏,但原因不明。 Bad_UnexpectedError 0x80010000 发生非预期错误。 Bad_InternalError 0x80020000 编...

ymfz001的博客 2万+

MTK存储系统相关

NOR和NAND都是flash, 掉电数据不丢失的,掉电数据丢失的叫RAMflash上分两块,code区域和文件系统区域(又分系统盘和用户盘)。NVRAM是一套机制,它的数据部分:default存在flash的code区,NARAM文件存在文件系统区域(系统盘)phone的电话本数据是以NVRAM文件的形式保存在文件系统区域的(系统盘),SIM卡的电话本就在SIM卡上了T卡是扩展的flash,都是文件系统区NAND flash、NORflash及普通flash 有什么区别  NOR和NAND是现在市场上两种

dy_Learning的专栏 3938

MTK刷机错误代码信息解译和解决方法大全

【解决办法】:5069一般都是走完红条出现,或者是紫条时出现,也有可能是在走黄条的时候出现的5069错误,如果你的刷机包正确而且没有问题那么这个机器是无法修复了,这个错误是字库损坏引起的,建议大家退机保平安!另外的处理方法:刷机时黄颜色进度条55%,弹出过错误代码3060 ,把下载换成(全部格式化和下载),再次点下载,拔插电池、数据线,黄颜色进度75%,再弹出过错误代码3060 ,再次点下载,拔插电池、数据线,最终完成。【解决办法】:方法一:重新找 ROM,你的 ROM 是不对的!

https://blog.youkuaiyun.com/qFAFAF 5018

mtk cam_cal eeprom 驱动

文章目录1.驱动架构1.1 结构目录1.2 内核编译相关1.3 Makefile2.driver2.1 init2.1 EEPROM_drv_ioctl2.2 EEPROM_get_cmd_info2.3 EEPROM_set_i2c_bus2.4 readCMDFunc 1.驱动架构 1.1 结构目录 android/kernel-4.19/drivers/misc/mediatek/cam_cal 1.2 内核编译相关 在bringup阶段,会在 android/kernel-4.19/arch/ar

weixin_47000196的博客 3224

Android NVRAM 读写

android NVRAM 的读写,在高通和MTK 上差异较大。 具体如下:高通平台读写nv总结一,引言      1. 什么是NV       高通平台的NV,保存了系统运行过程中各个模块可能用到的一些参数值,它是以单个文件的形式保存在EFS中,但用户是不能随意访问的,只能通过QXDM来进行读写。对于60X0平台,NV就有将近5千多项。            2. 为什么要备份恢复NV     ...

weixin_38503885的博客 4952

MTK 文件复制

MTK本身没有文件copy函数,我们得写以下是一个例子    FS_HANDLE fp; U32 filelen=0; U32 readlen=0; static S8 buff[1024*4]={0};    S8 filepathandname[50]={0}; FMAppAnsiToUnicode(filePath,filefrom);     fp=(FS_HANDLE)FS_

Oo_Oo_的专栏 1996

玩机进阶教程----MTK芯片读写分区 备份分区 恢复分区 制作线刷包 从0开始 工具操作解析【三】

今天针对这款工具的2024新版本全面解析下具体如何操作从0到制作完整线刷包的过程以及工具其他功能的具体使用方法。 工具还有很多功能,通过此工具可以完整的备份mtk芯片所需要的可以使用mtk刷机平台SP_Flash_Too平台线刷的rom

小马哥的专栏 2716

MTK 关机充电

充电相关文件目录 alps\vendor\mediatek\proprietary\external\charger\ 充电控制函数:charging_control.cpp // total_time : ms // interval : ms static void draw_with...

chenglinpan1548的博客 1389

windows11 远程桌面连接 通过代理连接RDP桌面报错 错误代码0x904 拓展错误代码0x7

打开windows Defender防火墙设置--允许应用通过防火墙更改设置--允许其他应用浏览--进入C:\WINDOWS\system32目录选择mstsc.exe进入C:\Windows\SysWOW64目录h'qmstsc.exe添加后列表里多了一个远程桌面连接,还有一个Remote Desktop Connection,配置网络权限后保存连接成功。

weixin_43978891的博客 1万+

AHB总线协议

1. 简介         AHB总线规范是AMBA总线规范的一部分,AMBA总线规范是ARM公司提出的总线规范,被大多数SoC设计采用,它规定了AHB (Advanced High-performance Bus)、ASB (Advanced System Bus)、APB (Advanced Peripheral Bus)。AHB用于高性能、高时钟频率的系统结构,典型的应用如ARM核与系统内

ivy_reny的专栏 8万+

MTK客制化切换开机动画,恢复出厂设置开机动画不变更

最近做的一个项目,客户要求要保留原生系统的开机动画和客户提供的客制的开机动画,要求做到动画可以自由选择切换。手机在恢复出厂设置后,之前选择的开机动画选择设置仍保留。 我们这里用到了读写NV区的方式来保存对动画切换设置的保存。前面我有介绍过NV区的特性。 1.vendor/mediatek/proprietary/packages/apps/Dialer/java/com/android/dia...

TSK_Amine的博客 2329

IPD流程中CBB管理的5个致命误区,第3个坑了80%的团队

本文深入剖析了IPD流程中CBB管理的五个致命误区,尤其指出缺乏有效的度量与激励机制是影响80%团队的核心陷阱。文章强调CBB的核心在于前瞻性设计,而非简单归档,并需平衡通用性与产品竞争力,同时建立持续运营机制,确保CBB与市场需求对齐,从而真正实现缩短开发周期、降低成本的目标。

weixin_29234423的博客 569

Camera@Display denied sw_sync

camera相关进程出现下面selinux 权限问题: 02-26 11:03:53.338000 464 464 W Camera@Display: type=1400 audit(0.0:200): avc: denied { read write } for name="sw_sync" dev="tmpfs" ino=9239 scontext=u:r:mtk_hal_camera:s0 ...

静虚待令,有物混成 358

Linux运维人,该醒醒了,2019年要变天了

外界都说运维只是处于被动低效率手工救火的状态,企业对其重视程度不高,提起运维很多人能联想到的字眼就有“苦逼”、“辛苦”、“加班”、“背锅”。在大数据、人工智能、容器技术的强力加持下,运维这个传统的技术工种已经从“机械劳动”这样的刻板印象中蜕变出来,成为了任何一家技术公司所必须依赖和大力投入的核心技术能力。 现在,运维人员的发展前景也开始让很多程序员眼羡,作为Linux运维人员的你:这一年,你的L...

qq_43083284的博客 1万+

RK3588开发板量产前必做:24小时DDR压力测试到底在测什么?(附ArmSoM-W3测试脚本解析)

本文深入解析RK3588开发板量产前的24小时DDR压力测试,揭示其核心价值与技术原理。通过memtester、stressapptest和变频测试的组合使用,全面验证DDR内存稳定性。特别介绍ArmSoM-W3测试脚本的创新设计,包括并行测试架构和异常熔断机制,为开发者提供可靠的量产测试方案。

weixin_30325487的博客 454

Android9.x MTK NVRAM的读写---上层实现SN和MAC读写

前言 MTK平台有自己的序列号和MAC地址烧录工具,但只能用于个人的调试,如果产品要量产,还使用MTK平台自己的烧录工具,则就不合适了,因为满足不了工厂生产的一些客制化功能,比如SN号和MAC地址拼凑在一起同时烧录,MTK烧录工具就做不到。那么就需要设备厂商自己开发烧录工具了。本文就是解决MTK 平台Android9.0上如何通过应用层来进行读写SN号和MAC地址。 概述 在MTK平台 中,SN号和MAC地址都是保存在NVRAM中的,所以读写SN号和MAC地址,实际上就是对NVRAM进行读写操作。而在And

qq_15347925的博客 4103

手把手教你用Docker快速部署ZLMediaKit流媒体服务器(含WebRTC配置)

本文详细介绍了如何使用Docker快速部署ZLMediaKit流媒体服务器,并配置WebRTC功能。通过容器化部署,实现环境一致性、资源隔离和快速扩展,同时提供WebRTC专项配置、多协议推拉流实战测试及生产环境优化建议,帮助开发者高效搭建企业级流媒体平台。

agile9scrum的博客 203

MTK的文件解释

本文详解MTK的编译过程,并会根据我的理解来更新。阅读上文对本文的一些文件和术语会有很好的帮助。导读:  Comp.mak 完成模块编译连接,生成bin  Gsm2.mak 主编译文件,完成clean,remake,new等工作  **_GPRS.mak 客户私有的配置,根据客户的不同,而设定不同的配置文件  Option.mak 工程中的基本配置及宏定义文件  Verno_**.bld 版本文件  Custom.bld 要保证在客户版本中都使用相同的配置的地方要写在这里,这个里面的一些文件不能被改变  第

AllenMorley的专栏 3647

Python+AI能源管理实战:从电力负荷预测到智能调度的全流程开发

本系统展示了Python在能源管理领域的强大能力,通过AI技术实现了从预测到优化的智能决策闭环。随着碳中和目标的推进,智能能源系统将成为新型电力系统的核心大脑。📌 专业建议:系统部署需考虑网络安全防护,关键控制指令应设置多重验证机制!关注我的优快云账号获取能源系统安全最佳实践~下期预告:我们将探索Python在智慧医疗中的应用,开发基于多模态数据的智能诊断辅助系统。想提前获取代码?评论区留言"智慧医疗"获取GitHub源码链接!

资深全栈架构师,乐于在 优快云 分享技术见解,与大家携手共进,共攀技术巅峰! 625

专栏目录:Linux 内存管理子系统的进化——从 MM 到 HMM

专栏梳理了Linux内存管理子系统从经典MM到异构内存管理(HMM)的演进历程。内容分为六大部分:首先介绍经典MM基础,包括虚拟地址空间、页表、VMA等核心机制;其次分析MM通用框架如页表遍历、NUMA迁移等;然后探讨设备内存引入的关键技术,如ZONE_DEVICE和dev_pagemap;接着深入解析HMM核心机制及其与DMA的集成;随后通过多个实际驱动案例展示HMM应用;最后讨论大页支持等进阶主题。专栏采用"经典机制→问题→扩展方案"的三段式结构,帮助开发者理解Linux如何通过HMM实现设备内存管理。

图形/计算GPU的驱动与虚拟化技术分享园地 879
上一篇: C 语言学生档案管理系统(源代码)
下一篇: MTK 资源编译
玉凌风_BLOG
博客等级 码龄19年 81粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值