⑴ dcd运行指数怎么修改
i.MX RT启动数据DCD的结构及配置
目前NXP的i.MX RT因为很好的性能,在MCU市场上受到了广泛的欢迎。i.MX RT内部有三种SRAM,分别是ITCM、DTCM和OCRAM。主流使用的i.MX RT的内部SRAM都小于1MB,但对于有些应用,比如需要LCD显示的应用,则需要更大的RAM存放所需显示的每帧数据。如对于分辨率为WQGA(480x272)的屏,显示16bit的色深,用一个数据缓存区,显示一帧的数据至少需要260KB的RAM;如果想支持分辨率更高,得到更好的显示性能,如i.MX RT可支持分辨率WVGA(800x480)的LCD屏,显示24bit的色深,使用两个数据缓存区,则显示一帧的数据至少需要2.3MB的RAM;如果再加上其他的应用代码,1MB的内部SRAM是远远不够的。因此,很多应用需要外扩RAM,通常SDRAM用的比较多。
毫无疑问,i.MX RT支持SDRAM,并通过SEMC接口实现SDRAM的读写。
说到SDRAM的使用就不得不说i.MX RT的启动。除了内部RAM,i.MX RT启动支持以下6种外部存储器:
·Serial NOR Flash via FlexSPI
·Serial NAND Flash via FlexSPI
·Parallel NOR Flash via SEMC
·RAW NAND Flash via SEMC
·SD/MMC via uSDHC
·SPI NOR/EEPROM via LPSPI
其中Serial/Parallel NOR这两种存储器可以XIP(直接执行),其他4种存储器无法XIP,需要把代码拷贝到内部RAM或外接SDRAM里运行。对于内部RAM和SDRAM,两个都是易失性存储器,存放的代码或数据掉电会丢失,所以无法直接启动。
POR上电后,要么通过外部调试器,直接将应用程序和数据下载进SRAM/SDRAM,并将PC指向应用程序开始执行;要么通过存储在FLASH/ROM中的Bootloader程序,将应用程序和数据先加载到SRAM/SDRAM里,然后再跳转过去执行。
只不过SRAM是挂在系统总线上,一上电内部的SRAM就已经初始化完成了,而SDRAM是挂在存储器接口控制器上,因此需要先初始化SDRAM,才能向SDRAM中加载应用程序和数据。
除了从SDRAM 启动时需要在外部flash加载应用程序前提前初始化SDRAM,使SDRAM处于ready状态;有些应用同样需要在进入用户主程序前,完成SDRAM的初始化,以便CPU加载数据或代码到SDRAM时不会出错。如LCD的显示,对于字库和图形库文件的加载。
通常我们用DCD(Device configuration data)来初始化SDRAM.。但是DCD文件一般放在哪里及怎样定义呢,这里还是要说一下RT的启动,及一个可启动的image是如何构成的。
因为众所周知绝大多数的RT系列产品是没有内部FLASH的, 除了个别型号如i.MX RT1064;对于大多数有内部FLASH的MCU, FLASH地址是映射在内核的4GB系统空间内的(一般从0x0地址开始), MCU上电后可直接从内部FLASH读取应用代码并原地执行。
对于RT系列来说则是由片内的BootROM进行引导的,BootROM读取BOOT_MODE寄存器和eFUSEs的值,确定从哪个存储器启动,从外部存储器加载应用程序代码到内部SRAM、外部SDRAM或直接从Flash原地执行(XIP)。要让系统能够正常启动起来,以FlexSPI NOR flash为例,则烧写到外部SPIFlash里面的完整代码段必须按照BootROM规定的格式编写,也就是必须在用户的应用程序前加一个头文件, 这个头文件包含如下部分,这样才能正常启动。在这个头文件中就包含了SDRAM的配置信息,也就是DCD的定义。
通常可启动的Image头文件包含如下部分:
·Flash Configuration Parameters (FCP) — Flash的配置参数;
·Image Vector Table (IVT) — 包含指向固定物理地址的程序入口指针,包含指向DCD的指针,及其他的启动过程中ROM需要用到的指针,并通过查找这些入口地址找到程序的各组成部分;
·Boot data — 包含程序镜像文件的地址,大小及Plugin标志;
·Device Configuration Data (DCD) — 芯片配置数据,比如SDRAM寄存器的设置;这段数据的入口也包含在IVT中,这段数据最大为1768字
·Application — 用户程序及数据;
IVT的结构如下:
1.png (64.35 KB, 下载次数: 5)
2020-5-28 14:47 上传前几个字段都是内置的Boot ROM在初始化芯片时需要被读取的数据。初始化完成后会跳转到用户代码开始执行,也即Reset_handler。
SDK的例程中关于IVT/FCB/DCD/LUT的定义及地址分配
2.png (150.9 KB, 下载次数: 7)
2020-5-28 14:47 上传
3.png (108.64 KB, 下载次数: 3)
2020-5-28 14:48 上传下面以常见的FlexSPI NOR Flash的启动为例,说明启动的过程
4.png (104.42 KB, 下载次数: 7)
2020-5-28 14:48 上传芯片POR上电后,Arm CPU核心首先执行Boot ROM程序,判断并决定最终从QSPI Flash启动;ROM配置FlexSPI的PINMUX,时钟配置为30MHz,单线模式;读取Flash初始的512字节读取配置参数,并配置IOMUXC,LUT等;根据读取的参数配置Flash到正常运行模式;读取IVT并判断是否是XIP;如果是XIP直接从flash中执行,如果非XIP需先拷贝4K Byte数据到OCRAM。这4K Byte数据包含IVT、DCD和Boot Data。通过IVT找到DCD的入口地址后,ROM代码执行DCD检查,读取配置信息来对外设进行初始化,如SEMC的初始化;再从Boot Data中提取出程序镜像的地址和大小,然后加载到到RAM(SDRAM)中,并跳转到RAM(SDRAM)中开始执行。
当使用SDRAM时,大家经常会担心,MCU是什么时候初始化SDRAM,什么时候加载代码到SDRAM并开始执行的,会不会出现还没有初始化就开始加载代码的情况。
除了上面介绍的FlexSPI Flash的启动流程,下面以IAR的启动过程为例,可以在startup_MIMXRT1052.s中找到CPU的起始入口Reset_Handler,程序的加载过程实际上是在__iar_program_start这个函数里面实现的,这个函数是包含在IAR的lib库中。
这里可以看出来代码加载是在用户程序里执行的。但DCD的读取也就是SDRAM的初始化是在Boot Rom中执行的,所以是不会影响到后面代码和数据加载到SDRAM的。当然如果对DCD不熟,想直接初始化SDRAM,也可以把这些初始化放在SystemInit函数里面,因为SystemInit是在__iar_program_start之前执行完毕的,一样不会影响对SDRAM的读写。
5.png (60.58 KB, 下载次数: 5)
2020-5-28 14:48 上传除了DCD文件,如果IDE使用IAR,我们也可用SDRAM的预处理文件(如evkmimxrt1050_sdram_init.mac)文件来初始化SDRAM。mac文件主要是SDRAM Debug模式时使用,当然在mac文件中配置的内容是和DCD一致的,在IDE的属性中可以找到mac文件的链接位置。
6.png (98.21 KB, 下载次数: 5)
2020-5-28 14:48 上传下面介绍一下DCD的结构及如何生成一个DCD文件。DCD 仅限于对启动有至关重要的内存区域和外设地址的设置。
ROM根据IVT中的信息确定DCD表的位置。下面显示的DCD表是大端模式DCD命令字节数组。DCD最大限制为1768字节。
DCD data format
7.png (16.64 KB, 下载次数: 7)
2020-5-28 14:48 上传DCD 头为 4 字节,格式如下:
8.png (9.3 KB, 下载次数: 5)
2020-5-28 14:48 上传·标签(Tag):单字节字段设置为0xD2
·长度(Length):包含DCD总长度的大端模式的两字节字段(以字节为单位),包括标头
·版本(Version):单字节字段设置为0x41
写入数据命令(CMD)
写入数据命令用于把给定的1、2或4字节数值(或位掩码)写入到相应的目标地址中。
下表是写入数据命令的格式(在大端字节数组中):
9.png (28.68 KB, 下载次数: 6)
2020-5-28 14:48 上传·标签(Tag):单字节字段设置为0xCC
·长度(Length):大端模式的双字节字段,包含写入数据的长度,命令(以字节为单位),包括标头
·地址(Address):必须将数据写入的目标地址
·值/掩码(Value/Mask):要写入上述地址的数据值(或位掩码)
参数字段(Parameter)是由位字段组成的单字节,如下所示:
10.png (10.37 KB, 下载次数: 4)
2020-5-28 14:48 上传·字节(bytes):以字节为单位的目标地址的宽度(1、2或4)
·标志(flags):命令行为的控制标志
·数据掩码=位3:如果设置,目标地址上只能覆盖特定位(否则所有位都可以覆盖)
·数据集=位4:如果已设置,目标地址的位将使用此标志覆盖(否则将被忽略)
可以指定一个或多个目标地址和值/位掩码对。相同的字节和标志的参数应用于命令中的所有位置。
⑵ 大家谁知道怎么用24CXX系列芯片读写软件修改存储器的数据呢
没人知道吗??????????????????????
⑶ 怎么在windows xp中更改笔记本电脑电池的电池芯片数据
一般WIN XP会自动显示的。你试试:
右键桌面——属性——屏幕保护程序——电源——电源使用方案选择:便携\袖珍式
注意:在接通电源时当然不显示电量了,因为此时没有消耗电池电量。
只有在拔去电源时才能显示电源电量。
⑷ 门禁卡IC芯片数据如何修改
先确定是ID卡还是IC卡。 ID卡上边只有一串的数字,是写死的,不能修改。
IC卡的话,里边数据可以修改。 前提是你知道卡的读写密码。不知道密码的话,是读取不出来的。
⑸ 我有一个93C76芯片,现需要改里面数据。谁会啊
在EXCEL中选中要生成图表的数据,点击“插入——图表”,按照提示生成图表,如果想修改X坐标、Y坐标上的数值,可双击该数值,在出现的“坐标轴格式”中进行修改。
⑹ 如何使用XP编程器读写芯片数据
首先软件里选择目标芯片型号。然后加载数据文件,有各种格式,不知道你的文件是什么格式的。然后将芯片放入编程器锁紧座,开始编程就可以了。
⑺ 门禁卡IC芯片数据如何修改
解决方法很多!深圳市则科科技开发有限公司,专业人力资源管理系统,一卡通系统研发商,提示您:IC卡默认有一些芯片内容,修改不了;使用中通过软件写进去的内容(比如说工号,姓名,密码等)可以通过对应的发卡器结合发卡时的软件进行注销(也就是清除数据)操作,之后你可以重新写我需要的数据。
⑻ 饭卡的芯片可以改数据吗
可以
IC卡密码可以破解,里面的数据你看懂了就可以修改,但是你不确定这组数据是不是金额的数据呢?这你就得改一次去试一次,容易产生怀疑,还有你不怕月底食堂跟学校去对账的时候发现数据不对,然后清单一拉一对发现你的卡实际充值是100,实际消费却有好几百,马上就会找你谈话的!这个时候你又跑不掉,而且搞不好就变成了诈骗犯了。
⑼ M1卡等IC卡的密钥AB和控制位有什么用,如果是修改数据需要,那么如何使用这三项来进行数据修改
IC卡包括了ID卡,M1卡、CPU卡;ID卡指的是低频率的卡,读取的频率是不一样的
M1卡通常指的是恩智浦的S50芯片卡;
CPU卡比ID卡和M1卡容量多、具有自动运算功能、还有安全性强的卡。
1、ID卡
全称为身份识别卡(Identification
Card),是一种不可...
⑽ 摩托车仪表芯片用烧录器读出得数据怎么改
烧录器对读出的内容是无法判断哪里进行修改的,他就是一个工具。具体修改哪里,还得需要使用这个芯片的人来改。何况你这个图上的都是Flash芯片,都是二进制的bin文件,不知道的,还是不要随便改了。