SD卡以及nand flash相关知识整理

深入了解NOR Flash与NAND Flash存储技术 随着国内对集成电路,特别是存储芯片的重视,越来越多的客户开始咨询关于NOR Flash、NAND Flash、SD NAND、eMMC、Raw NAND等存储产品的相关信息。为此,我们整理了这篇文章,旨在分类介绍常见的存储产品,并对其特点进行简要描述。在正式开始介绍之前,推荐一款易用且稳定的Flash产品——CS创世 SD NAND。免驱动使用可机贴尺寸小巧:6*8mm,LGA-8封装擦写寿命长耐高低温冲击容量范围:128MB~4GBCS创世 SD NAND 产品页面。 阅读详情

做了那么久的storage相关的东西,一直也没有好好整理,趁现在阳光正好,微风不燥,趁现在花还未开到荼蘼,将这部分知识整理归纳。

NAND FLASH为什么不能够XIP


SD卡的启动时序


NAND FLASH  ECC错误,导致找不到BBT

需要确认nand的初始化配置过程中的ecc的大小是否正确,以及layout的pos值设置是否正确。

       读取NAND 芯片的ID ,然后查表得到这片NAND 芯片的如厂商,page size ,erase size 以及chip size 等信息,接着,根据struct nand_chip 中options 的值的不同,或者在NAND 芯片中的特定位置查找bad block table ,或者scan 整个NAND 芯片,并在内存中建立bad block table 。说起来复杂,但其实所有的这些动作,都可以在MTD 提供的一个叫做nand_scan 的函数中完成。
      关于nand_scan 函数,在使用时我想有一个地方值得一提。nand_scan 函数主要有两个两个函数组成,即nand_scan_ident 函数和nand_scan_tail 函数。其中nand_scan_ident 函数会读取NAND 芯片的ID,而nand_scan_tail 函数则会查找或者建立bbt (bad block table) 。 
      在一般情况下,我们可以直接调用nand_scan 函数来完成所要做的工作,然而却并不总是如此,在有些情况下,我们必须分别调用nand_scan_ident 函数和nand_scan_tail 函数,因为在这两者之间,我们还需要做一些额外的工作。

       struct nand_ecclayout 的结构体,它用来定义ecc 在oob 中的布局。对于small page( 每页512 Byte) 和big page( 每页2048 Byte) 的两种NAND 芯片,它们的ecc 在oob 中的布局不尽相同。如果你的driver 中对这两种芯片的ecc 布局与MTD 中定义的default 的布局一致,那么就很方便,直接调用nand_scan 函数即可。

      但如果不是,那你就需要为这两种不同的NAND 芯片分别定义你的ecc 布局。于是问题来了,因为我们在调用nand_scan_ident 函数之前,是不知道系统中的NAND 芯片是small page 类型的,还是big page 类型,然而在调用nand_scan_tail 函数之前,却必须确定NAND 芯片的oob 布局( 包括ecc 布局和坏块信息pattern) ,因为nand_scan_tail 函数在读取oob 以及处理ecc 时需要这个信息。所以在这种情况下,我们就需要首先调用nand_scan_ident 函数,它会调用一个叫做nand_get_flash_type 的函数,MTD 就是在这个函数中读取NAND 芯片的ID ,然后就能查表( 即全局变量nand_flash_ids) 知道这片NAND 芯片的类型( 即writesize 的大小) 了。接下来,你就可以在你的NAND 驱动中,根据writesize 的大小来区分ecc 的布局了。最后,我们就可以顺利地调用nand_scan_tail 函数了。


MK SD NAND在STM32精英板上的移植实战:替代TF卡并跑通FatFS 在嵌入式系统设计中,存储方案的选型往往直接决定产品的可靠性与维护成本。传统TF卡依赖插拔结构,在振动、湿热等恶劣环境下易出现接触不良;板载SPI Flash容量有限,且文件管理能力薄弱。NAND Flash与SD控制器合封的SD NAND芯片,以标准SD协议对外通信,兼具贴片焊接的可靠性与文件系统友好性,成为嵌入式存储的理想中间方案。其内部集成坏块管理与ECC校验,MCU仅需通过SDIO或SPI接口发送标准命令即可访问,配合FatFS可快速实现日志记录、资源存储、固件升级等工程需求。本文以正点原子STM32 阅读详情

相关推荐

CS 创世SD NAND FLASH 存储芯片,比TF卡更小巧轻便易用的大容量存储,TF卡替代方案

SD NAND FLASH(Secure Digital NAND Flash)是一种安全数字 NAND 闪存技术,通常用于存储数据,并且具有一些额外的安全特性。这种技术结合了 NAND 闪存的高密度存储能力和安全性能。它通常用于存储数据,如图像、视频、音频、文档等,同时具备保护数据免受未经授权访问或篡改的能力。SD NAND FLASH 的主要特点包括:安全性:SD NAND FLASH 提供了硬件和软件层面的安全性保护,包括加密和访问控制,以确保存储的数据不容易被盗取或篡改。

q742971636的博客 1201

“Flash闪存”基础 及 “SD NAND Flash”产品的测试

FLASH闪存是属于内存器件的一种,“Flash”。闪存则是一种非易失性( Non-Volatile )内存,在没有电流供应的条件下也能够长久地保持数据,其存储特性相当于硬盘,这项特性正是闪存得以成为各类便携型数字设备的存储介质的基础。各类 DDR 、 SDRAM 或者 RDRAM 都属于挥发性内存,只要停止电流供应内存中的数据便无法保持,因此每次电脑开机都需要把数据重新载入内存。NAND 闪存的存储单元采用串行结构,存储单元的读写是以页和块为单位来进行(一页包含若干字节,若干页则组成储存块, NAND 的

Bit_Dong的博客 2751

黑猫带你学eMMC协议第3篇:MMC相关介绍

对于纯小白来说,很容易搞混各种名词概念,而网上各种文章介绍时也不够严谨,导致越来越多人对很多专业术语搞不清楚,越来越迷糊,甚至有些内容,专业人士也容易搞混,如下,整理了一些存储芯片相关易迷糊的知识点。

黑猫奥利奥的博客 4622

SD卡与NAND flash的差异

性能限制:由于SD卡的物理尺寸和接口限制,其性能相对于直接使用NAND Flash芯片的存储解决方案可能会受到一定限制。有限的写入寿命:与普通的NAND Flash存储解决方案相比,SD卡的写入寿命可能相对较低。频繁的写入操作会逐渐降低SD卡的寿命,需要注意数据的备份和存储管理。可移动性:SD卡是一种可移动存储介质,可以轻松插入和拔出支持SD卡接口的设备,如相机、手机、笔记本电脑等。需要根据具体的应用场景和需求来评估SD卡和普通NAND Flash之间的优劣势,并选择适合的存储解决方案.

最后一个bug的博客 1670

单片机上搭配的SPI NOR FLASH容量告急!扩容新选择

NOR FLASH 是市场上两种主要的非易失闪存技术之一。Intel于1988年首先开发出NOR Flash 技术(实际上是东芝的富士雄率先开发出来的),彻底改变了原先由EPROM(Erasable Programmable Read-Only-Memory电可编程序只读存储器)和EEPROM(电可擦只读存储器Electrically Erasable Programmable Read - Only Memory)一统天下的局面。紧接着,1989年,东芝公司发表了NAND Flash 结构,强调降低每比特

私聊前往站内信:https://i.youkuaiyun.com/#/msg/chat/weixin_44976692 1万+

项目管理面试常见问题及答案

1. 项目管理软件工具知识,   2. 编制项目计划的技术,   3. 人员管理技能   4. 沟通技能   5. 原理体系知识(标生命周期和项目管理)。 项目管理软件工具知识   问题1:工期和工作量之间的差异是什么?   答案1:工期是商业/日历上的天数,与人数和工作量无关。工作量是与日历天数无关的人的工作。例如:   一天的工作量对于一个一只花50%在时间在上面的人来说,他的工期就是两天。...

okbin1991的博客 2840

SD NAND Flash简介!

他的特点主要有封装小,使用方便的特点。亲爱的卡友们,欢迎光临雷龙官网,如果看完文章之后还是有疑惑或不懂的地方,请联系我们,自己去理解或猜答案是件很累的事,请把最麻烦的事情交给我们来处理,术业有专攻,闻道有先后,深圳市雷龙发展专注存储行业13年,专业提供小容量存储解决方案。另外有些主控芯片不支持并行接口的NAND Flash,但是需要用到1Gb,2Gb,4Gb的容量作为语音、数据信息的存储,或者主控芯片的参考驱动代码只提供了NAND Flash的基本驱动,并未提供ECC的校验及坏块管理部分。...

深圳市雷龙发展有限公司 1365

SAP ABAP VL09 BAPI VL 216

ls_batch_item-fact_unit_denom = ls_lips_split-umvkn. "销售数量转换为 SKU 的值(分母)ls_batch_item-fact_unit_nom = ls_lips_split-umvkz. "销售数量转换成SKU的分子(因子)ls_batch_item-sales_unit_iso = ls_lips_split-meins. "被拆分DN基本单位。

ChampaignWolf的专栏 2300

SD卡通常是哪种类型的flash?

SD卡(Secure Digital Card)是一种存储介质,它使用的主要存储技术是闪存(Flash Memory)。因此,SD卡可以被视为一种闪存存储设备。闪存是一种非易失性存储器,它可以在断电后保持数据的完整性。与传统的随机访问存储器(RAM)不同,闪存是一种顺序访问存储器,意味着数据必须按顺序读取或写入。SD卡通常使用的是NAND Flash技术,这是一种常见的闪存类型。NAND Flash具有较高的存储密度和较低的成本,适用于大容量存储介质。

最后一个bug的博客 1166

标准化降水指数介绍

Mckee et al.(1993)认为降水量的减少是导致干旱的主要因素,其他气候因子一般变化较小,对干旱产生的影响不大,因此SPI使用降水量作为唯一参数。SPI能较好表达因降水量的大小反映干旱状况,操作简单,所需资料仅为降水量,同时该干旱指数在各个地区和各个时段都具有良好的计算稳定性,是继PDSI之后另一种被广泛应用的干旱指数。𝐻(𝑥)是Γ分布求得的概率,并当𝐻(𝑥)>0.5时,S=1;式中,𝛼是形状参数,𝛽是尺度参数,𝑥是当月降水量,𝛤(𝛼)是Gamma函数,用极大似然估计法计算最佳的𝛼和𝛽,即。

weixin_44259522的博客 2857

HFSS15 win10_64位破解

HFSS15 win10_64位破解 找到的别人的软件,但在首次安装时失败了,并不能patched。寻找了几种方法,已成功安装。在此写下安装经验,供大家参考。 软件安装包以及破解软件: 链接:https://pan.baidu.com/s/1MMjV_31maU5QD6fmI4zfIA 提取码:yj4q 在安装之前,建议关闭杀毒软件。 Step1:进入HFSS150Win64安装包,点击au...

玉笙寒 4万+

外存——主流的外存设备简介(SD卡、MMC卡、iNand、Nandflash等概念)

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。

主要记录嵌入式学习与开发过程。 3651

深入解析 TDA4VM/VH R5F 核中断机制:VIC 与非 VIC 模式下的实战对比与优化

本文深入解析了TI TDA4VM/VH平台中ARMv7-R架构R5F核的两种中断处理机制:VIC模式与非VIC模式。通过对比硬件自动跳转与软件向量表分发的核心流程、实战代码示例及性能差异,为开发者提供了基于实时性、灵活性与调试需求的选择指南和优化建议,帮助构建更稳定的嵌入式系统。

weixin_29159441的博客 98

国产 SD NAND(贴片式 SD 卡)芯片厂家列表

SD NAND(Secure Digital NAND),又称贴片式 TF 卡、贴片式 SD 卡、可焊接 SD 卡,是将 NAND 闪存颗粒与 SD 控制器、闪存管理固件集成于一体的小型贴片式存储芯片(常见 LGA-8 封装,如 6x8mm、9x12.5mm)。它对外提供标准 SD 2.0/3.0(或 SPI)协议接口,可直接焊接到 PCB 上,替代传统可插拔 TF 卡,解决了接触不良、易脱落、占用面积大等问题。

qq_33812122的博客 264

V90伺服 EPOS模式下回原(详细配置+SCL源代码)

/ 输出上限 100.0%rSetPoint : Real;// 设置目标值工程量。// 通道转换参考值。Td : Real;

RXXW_Dor的博客 2665

【ESP32设备通信】-LoRa通信

在本文中,我们将使用 Arduino IDE 将 ESP32 与 LoRa SX1278 (Ra-02) 模块连接起来。 我们将创建一个真实的示例项目,通过 LoRa 无线打开/关闭 LED 进行演示。

视觉与物联智能 1890

OK6410 tftp下载内核、文件系统以及nand flash地址相关整理、总结

飞凌官方提供了一键下载烧写linux的方式,相对来说比较方便,但是对于开发来说不够灵活,因此这篇文章把tftp相关的点介绍一下,整理下其中遇到的一些问题。          一键烧写本质上是启动位于SD卡中的Uboot,通过uboot读取sd卡中的文件到SRAM最后通过nand指令实现一键烧写,这一块可以参考飞凌提供的uboot源码中include\configs 中的smdk6410.h 的5

rainysky的专栏 4617

基于RK3588的YOLOv11目标检测NPU加速系统设计与实现——模型转换(RKNN)、量化与板端部署全流程(含环境搭建与疑难解析)

而RK3588芯片则是一款性能强劲的边缘计算芯片,将YOLOv11部署在RK3588上,可实现本地化的智能检测应用,比如工业质检中的产品缺陷识别、安防领域的异常行为监测等。比如,优化模型的推理速度,可通过调整模型的输入尺寸、使用更高效的推理框架等方式实现;可以使用RK提供的量化工具来完成这一过程,按照工具的使用说明,对ONNX模型进行量化,生成适用于RK3588的模型文件。现在,你已经掌握了从环境搭建到模型部署的全流程,赶快动手实践,让YOLOv11在RK3588上绽放智能光彩,打造属于你的AI应用吧!

m0_71589036的博客 45

STM32实战:用MK SD NAND替代TF卡,解决掉电与震动存储难题

在工业与嵌入式场景中,数据存储的可靠性往往决定系统稳定性。传统TF卡因接触不良和震动容易失效,而裸NAND Flash又要求主控自己处理坏块与ECC,开发成本高。SD NAND将标准SD控制器与NAND Flash封装为一体,对外提供标准SD协议接口,内置FTL固件,既保留了闪存的大容量优势,又免去底层管理复杂度。在STM32平台上,借助SDIO接口与FatFs文件系统,可以快速构建掉电不丢的贴片式存储方案。本文基于正点原子精英板,从硬件转接、SDIO驱动对接、FatFs挂载三步出发,完整演示MK SD N

weixin_33788244的博客 1257

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

**00后“砖家”开课了!今天的课题是: 什么是SD NAND? 是不是就是“传说中”的贴片式TF卡、贴片式闪存卡呢? S

00后“砖家”开课了!今天的课题是: 什么是SD NAND? 是不是就是“传说中”的贴片式TF卡、贴片式闪存卡呢? SD NAND为何物?鄙人作为常年混迹于各大论坛,胸怀大志的00后,好像发现了一个未来的从业方向(本人2020届自动化专业毕业生),我觉得如果任何配件类的产品都可以自带存储,那无疑是属于我们年轻人下一个时代的风口浪尖,不出所料的是果然市面上已经有小型存储的相关内容了,其中特点最为鲜明...

qq_39653564的博客 1022

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

笔记整理—Flash之Nand

整理一下学习的内容,个人观点可能存在错误。本章主要用于说明什么是Flash中的Nand类型在一个设备中起到的作用,并说明其读写的原理以及块和页的关系。

qq_35229394的博客 685

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

STM32精英板接入SD NAND:从驱动适配到文件系统跑通全记录

在嵌入式产品开发中,存储方案的选型往往决定系统的可靠性与量产效率。传统NAND Flash需要开发者自行处理坏块管理与ECC纠错,而TF卡虽然使用方便却受限于卡座接触式结构,在振动、潮湿等恶劣环境下存在隐患。贴片式SD NAND将NAND Flash与SD控制器封装为一体,对外提供标准SDIO接口,既保留了可热插拔SD卡的协议易用性,又以焊接方式解决了接触可靠性问题。本文以STM32开发板为平台,讲解在正点原子精英板上通过SDIO接口连接贴片存储芯片的完整过程,涵盖原理图引脚对应关系、硬件转接方案、FatF

weixin_33896726的博客 468

基于FPGA的SD NAND图片显示实现_sd-nand,2024年最新你值得拥有

在上一篇文章《基于FPGA的SD卡的数据读写实现(SD NAND FLASH)》中,我们了解到了SD NAND Flash的相关知识,并在FPGA平台上实现了对SD NAND的读写测试。SD NAND的读写测试可能会有点简单和枯燥,所以本文我们来搞点有乐趣性的----将存储在SD NAND内的两张图片通过FPGA读取,并通过VGA的方式在显示器上轮回显示。

2401_84160087的博客 955

关于存储器的简介(RAM、ROM、FLASH等内容介绍)

以下内容源于网络资源的学习与整理,如有侵权请告知删除。

主要记录嵌入式学习与开发过程。 5513

SD NAND:嵌入式系统高可靠存储的务实之选

嵌入式存储面临频繁写入、宽温运行、意外断电与长期免维护等严苛挑战,传统SPI NOR容量受限、eMMC接口复杂、Raw NAND开发成本高。SD NAND以标准SDIO接口复用MCU资源,集成NAND闪存密度优势与内置控制器(坏块管理、自适应磨损均衡、断电安全写入),在可靠性、成本与开发效率间实现最优平衡。其BGA封装、双电压域设计及工业级温度支持,使其成为温控器、智能水表、车载终端等场景的关键选型。本文聚焦SD NAND在嵌入式环境中的落地逻辑、硬件设计要点与寿命保障机制。

weixin_34072458的博客 330
上一篇: 内存管理、内存分配malloc、free、realloc,printf小结
下一篇: Yaffs2文件系统工作机制
野-百-合
博客等级 码龄17年 308粉丝 118原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值