关于更换nand flash,TC58NVG0S3H

安霸flash dma操作 flash的dma操作 阅读详情

这几天在做更换nand flash的工作,结论也出来了,由于ECC的影响,暂时不用TC58NVG0S3H,还是用回三星的K9F1G08.

2018/9/22 14:30
1,TC58NVG0S3H,东芝nand flash不行,
No Space for BBT!
nand desc dma timeout

2018/9/28 15:28
1,关于TC58NVG0S3H,东芝nand flash不行,
 技术支持反映可能是和ECC有关,查了文档,三星的是1bit,6bit,可以软件控制,但东芝的是8bit要POC控制
 但s2l的文档前后不一,之前的说是和vd0_out10,vd0_out11有,但新的却说和vd0_15,vd0_16有关,
 ECC level:
                 15:16
  1 bit:=00
  6 bit:=01
  8 bit:=11
  
 经过测试,确实改成8 BIT 的可烧录,把R70贴上,但由于vd0_16也用作i2s_so不确定对声音有没有影响,
 贴上r70可以用k9f1g08的软件烧录,但不能运行,

还要把R99去掉,达不到上拉,且要改kernel/linux/arch/arm/boot/dts/ambarella-s2l.dtsi
 
     /* amb,soft-ecc = <1>; */
     改为amb,soft-ecc = <8>;
     
 重新编译烧录上去可以运行了,但不知道对i2s有没有影响,同时对原来k9f1g08的有没有影响,

STC单片机程序烧录方法:简单易行的步骤指南 STC单片机是一种广泛应用于嵌入式系统中的单片机芯片,它具有低功耗、高性能和丰富的外设接口等优点。烧录程序是将编写好的程序代码加载到单片机中的过程,下面将详细介绍STC单片机程序烧录的方法,让您能够轻松掌握。通过按照以上步骤进行烧录,您就可以将该程序加载到STC单片机中,并验证程序的正确性。请确保在烧录过程中连接正确的引脚,以避免损坏单片机。以下是一个简单的LED闪烁程序的源代码示例,您可以使用该程序进行烧录和验证。STC单片机程序烧录方法:简单易行的步骤指南。步骤一:准备烧录工具和材料。 阅读详情

相关推荐

CM201-2-CH魔百盒通刷教程:EMMC/NAND存储兼容刷机方案

智能机顶盒刷机是一项常见的工程实践,其核心在于引导程序如何与不同的存储介质协同工作。EMMC和NAND作为两种主流闪存方案,在接口协议、分区管理及坏块处理上存在本质差异,导致许多刷机固件无法跨介质通用。理解两者底层原理,是解决刷机变砖、报错等问题的关键。例如,刷机过程中常见的“emmc偶发报错-110错误”,往往源于固件参数与芯片时序不匹配;而针对特定代工厂如“cm201 2m8273m8268m8270朝歌代工”的主板,固件必须匹配存储类型才能稳定运行。掌握通刷技术,可以让同一套固件自动识别EMMC或NA

weixin_33912453的博客 507

nand flash和emmc的区别:以TC58NVG0S3HTA00和KLMxGxxETx-B041为例

相关的参考: https://blog.youkuaiyun.com/xjw1874/article/details/81505967?utm_source=copy https://mp.weixin.qq.com/s/jMlgYooN3chtQup9xJyoHg nand flash: 芯片型号:TC58NVG0S3HTA00 外观和pinname: features: memor...

仗劍走天涯 2290

TC58NVG0S3HTA00

TC58NVG0S3HTA00_datasheet_en_20120831

2011-09-23 —— Prima ——Toshiba 2K Page SLC (TC58NVG0S3ETA00) 在 Prima 不能通过 uartboot 烧写的原因

众所周知,SLC 在 Prima 上是不支持从 ROM 启动模式的,Prima 可以通过 JTAG 烧写,也可以通过 uartboot(在 Prima NBOOT 目录下的 CBonly_uartboot_128MBMDDR_SLCLP .bin 文件) 升级,但是可能有人和遇到同样的问题 —— Toshiba 2K Page SLC (TC58NVG0S3ETA00)在 Prima 上不能通过

3398

TC58BVG0S3HTA00-datasheet-en-20120831.pdf

3.3V单电源供电,1G字节,NAND存储器,东芝品牌,简单,易操作

东芝Nand Flash TC58NVG3D1DTG00_E070118C

这个是东芝nand flash TC58NVG3D1DTG00_E070118C的芯片资料

基于龙芯2K1000移植uboot之NAND

基于龙芯2K1000移植uboot之NAND移植环境开始移植利用原生驱动(不成功)利用PMON驱动移植(成功) 移植环境 CPU:LS2K1000 NAND:MT29F16G08 编译环境:Ubuntu16.04+gcc-4.9.3-64-gnu GCC来源:GCC uboot来源:uboot 工具:龙芯的EJTAG调试工具。 硬件平台采用了单片NAND芯片,原理图如下: 开始移植 这里主要记录主要是记录移植过程。 利用原生驱动(不成功) 首先也不知道这里面驱动可能用,看了一下目录drivers/mtd/

u012101272的博客 1671

别再手动填序号了!用Python脚本在Arcgis属性表里实现分组自动编号(附完整代码)

本文详细介绍了如何利用Python脚本在Arcgis属性表中实现分组自动编号,告别低效的手工操作。通过核心代码解析和实战教程,帮助GIS工程师快速掌握自动化编号技术,提升工作效率并降低错误率。特别适合城市规划、国土调查等需要处理大量分组数据的场景。

weixin_42532473的博客 308

NAND FLASH学习笔记之MTD下nand flash驱动(五)

驱动中probe函数的分析 其中探测函数代码执行流程为:  在probe函数中主要是完成了NAND芯片级的初始化,主要有以下几个作用:   - 分配nand_chip内存,根据目标板及NAND控制器初始化nand_chip中成员函数(若未初始化则使用nand_base.c中的默认函数),将mtd_info中的priv指向nand_chip(或板相关私有结构),设置e

中华田园犬 5841

电磁波函数复数表示法:为什么物理学家偏爱e^(ikz)而非cos(kr-wt)?

本文深入解析了电磁波函数复数表示法(如e^(ikz))相较于传统余弦形式的巨大优势。通过欧拉公式,复数形式将复杂的三角运算转化为简洁的指数运算,在微分、积分、线性叠加及处理相位时展现出极高的计算效率,是物理学家和工程师分析波动现象的核心工具。

weixin_29094539的博客 498

为何LPDDR4支持on-die ECC,但是DDR4却不支持呢?

DRAM的ECC,目前的编码方式都是128bit data,产生8bit parity或者ECC code. 而且必须要128bit才行。这8bit的ECC code是要被写入到DRAM内存里面的,从而read的时候,可以读取这8bit ECC code来判定read data是否有错,如果是SBF,就可以纠错了,如果是double bit,大部分时候是可以detect到错误,即所谓的SEC(Single Error Correct) + DED(Double Error Detect).

一个DRAM从业者的告白 1555

龙芯杂记

PMON目录:root@lvyj-virtual-machine: /home/lvyj/workdir/longxi/ls2k/pmon/pmon-loongson3_pi/zloader.ls2k /home/lvyj/workdir/longxi/ls2k/pmon/busiji/pmon-loongson3_pi/zloader.ls2k /home/lvyj/workdir/longxi...

dongdong12345678900的博客 1074

STM32 HAL库定时器中断里读编码器速度准吗?聊聊MG310电机的测速与防溢出处理

本文探讨了STM32 HAL库在定时器中断中读取编码器速度的精度问题,特别针对MG310电机的测速与防溢出处理提供了解决方案。通过对比定时中断法和编码器模式的性能,揭示了硬件编码器接口在降低误差和CPU占用率方面的优势,并详细介绍了CubeMX配置技巧和防溢出处理的工程实践。

weixin_28720767的博客 401

dma读nand_stm32 NAND闪存成功读取ID程序

#include "stm32f10x.h"#include "stm32f10x_flash.h"#define SET_CLE GPIO_SetBits(GPIOD, GPIO_Pin_6)#define CLR_CLE GPIO_ResetBits(GPIOD, GPIO_Pin_6)#define SET_ALE GPIO_SetBits(GPIOD, GPIO_Pin_5)#define...

weixin_39989215的博客 532

从拆解到调试:用CS5523改造旧款车载显示屏的完整记录(MIPI转eDP方案)

本文详细记录了使用CS5523芯片将旧款车载显示屏从MIPI接口改造为eDP驱动的完整过程。通过对比LT8911等芯片,选择CS5523实现低功耗、高兼容性的显示升级,涵盖硬件改造、固件配置及调试技巧,最终成功提升显示效果200%。

web99的专栏 344

AUTOSAR内存篇 -内存驱动(Mem)

Mem驱动程序的task是基于底层内存设备技术的物理分段的低级内存访问。Mem驱动程序的API与内存设备技术无关,因此向存储器访问模块上层提供了与存储器设备无关的接口。所有高级功能(如跨段操作)都由内存访问模块处理,以尽可能降低Mem驱动器的复杂性和占用空间。Mem驱动API命名、类型定义和文件命名规则都遵循标准的AUTUSAR BSW模块实现。服务Mem_Init初始化Mem驱动的内部状态,并设置Mem驱动Job处理状态到MEM_JOB_OK。

IOT2017的博客 713

更换大容量nand出现的问题

最近在调试一个板子,nandflash容量吃紧。原来128MB,现在更换了256MB,结果UBOOT烧写进去后,无法启动。更换之前已经确认原来的板子是可以正常启动的。 之后又尝试将UBOOT下载到DDR当中,可以成功启动运行。于是对NAND进行了读写测试,竟然完全没有问题——读写一致!于是,继续查看数据手册,发现新的NAND读写操作与128MB的不一样。每一...

weixin_34221112的博客 441

Open3D (C++) KD tree的使用【2025最新版】

Open3D (C++) KD tree的使用,博客长期更新,本文最近更新时间为:2025年1月6日。

点云侠的博客 1566

MTD子系统和NAND

先前的文章《虚拟文件系统 (VFS)-基于linux3.10》和《UBIFS文件系统》只是对文件系统进行各层的分析,并没有连贯到读写flash。透过本文可以知道ubifs文件系统发出的读在linux操作系统上是到底是如何完成的。 NAND设备 Linux将裸NAND(区别于emmc、usbstick)归纳到MTD设备类型里,这类设备通常相关的操作通常位于drivers/mtd/nand目录

shichaog的专栏 4195

安装openclaw时出现node.exe : npm error code EIDLETIMEOUT的解决方案

本文主要介绍了安装openclaw时出现node.exe : npm error code EIDLETIMEOUT的解决方案,希望能对学习使用openclaw的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 11万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

【整理】嵌入式外设之DMA

原文地址:http://www.crifan.com/summary_embedded_peripherals_dma/ 【整理】嵌入式外设之DMA 2013 年 11 月 14 日 下午 2:43crifan已有188人围观我来说几句 DMA简介 DMA 不是独立的某个外设,而是一个硬件模块 支持DMA的功能 一般对应的,也是按个数来的,对应

yazhouren的专栏 1464

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

dma读nand_DMA直接内存存取原理

5.3DMA控制器82378237在DMA传送时有四种工作方式。1. 单字节传送方式这种方式一次只传送一个字节。数据传送后字节计数器减量,地址要相应修改(增量或减量取决于编程)。HRO变为无效,释放系统总线。若传送使字节数减为0,TC发生或者终结DMA传送,或重新初始化。2.多字节传送方式在这种传送方式下,8237由DREQ启动后就连续地传送数据,直至字节数计数器减到零产生TC(Terminal ...

weixin_28846405的博客 753

深度学习工具包 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&#39;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(&#39;DeepLearnToolbox&#39;));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(&#39;state&#39;,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&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,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 = &#39;sigm&#39;;%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, &#39;Too big error&#39;);```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(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;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)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;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, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% 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&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 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, &#39;Too big error&#39;);```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(&#39;state&#39;,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, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,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, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,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, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % 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, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % 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, &#39;Too big error&#39;);%% 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(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % 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, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Hi3516A用spi flash出现*** Warning - bad CRC, using default environment

最近在调Hi3516A的板,硬件不知道为什么如此设计,用一片16bit4G的ddr,16Mspi flash,按理如果是A应该是2片16bit的ddr,组成32位总线,现在怕是只能当D来用了,编译成功后,烧录uboot后,出现*** Warning - bad CRC, using default environment,尝试用setenv改变量,sa也提示成功,但reset后问题还是一样,折腾了...

5517

HDMI ite6801的开发板

最近手上有ite6801的板,可以用做ite6801辅助开发,上面有MCU,通过i2c来设置ite6801,只是输出只能YUV422的数字信号

3995
上一篇: HDMI ite6801的开发板
下一篇: 关于安霸s3l
疯烛
博客等级 码龄25年 30粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值