首页
熊猫办公下载
文件下载
根据地址查询经纬度
登录 / 注册
一级分类:
安全技术
存储
操作系统
服务器应用
行业
课程资源
开发技术
考试认证
数据库
网络技术
信息化
移动开发
云计算
大数据
跨平台
音视频
游戏开发
人工智能
区块链
二级分类:
DM365_NAND启动模式解析
【DM365_NAND启动模式解析】DM365是一款由TexasInstruments(TI)生产的数字媒体处理器,常用于视频处理和嵌入式系统。
在DM365中,NAND闪存是一种常见的非易失性存储器,用于存储固件和操作系统。
NAND启动模式是指DM365在上电或复位后从NAND闪存中加载启动代码的过程。
此过程涉及一系列复杂的步骤,确保系统能够正确地从NAND中读取和执行固件。
**NAND启动流程**1.**初始化**:系统首先初始化RAM1的高2KB栈空间(0x7800-0x7fff),避免覆盖用于存储UBL块号的最后32个字节(0x7ffc-0x8000)。
2.**禁止中断**:所有中断(IRQ和FIQ)被禁用,以确保启动过程不被打断。
3.**设置DEEPSLEEPZ/GIO0**:这个外部引脚在NAND启动时必须处于高电平。
4.**读取NANDID**:读取NAND闪存的设备ID,获取设备特性,如页面大小、块大小等。
5.**初始化NAND区域**:根据NAND的参数设置控制器和寄存器。
6.**搜索UBL描述符**:RBL(ROMBootloader)在block1的page0开始搜索UBL(UserBootLoader)的描述符。
如果未找到正确的UBL,会依次检查接下来的24个块,以防遇到坏块。
7.**处理UBL描述符**:UBL描述符包含入口点地址、占用的NAND页数、起始块和起始页等信息,用于指导UBL的加载和执行。
8.**ECC错误检测和校正**:开启硬件ECC(ErrorCorrectionCode)检测,复制UBL到IRAM(InternalRAM)。
如果检测到4位ECC错误,通过ECC算法进行纠正。
如果多次失败,RBL会尝试下一个块,直到找到有效的UBL描述符,或者在搜索完24个块后转而从SD卡启动。
9.**启动UBL**:在UBL的入口点执行代码,将控制权交给UBL。
10.**安全启动模式**:根据配置,启动模式可能包括PLL旁通模式,不使用快速EMIF、DMA或I-Cache。
在其他模式下,这些功能可以被启用以提高性能。
**NANDUBLdescriptor格式**UBL描述符是一个包含关键信息的数据结构,用于指示如何加载和执行UBL。
它可能包含如下字段:-入口点地址:UBL执行的起点。
-UBL占用的NAND页数:指示UBL的大小,必须是连续的页。
-UBL的起始块和起始页:定义UBL在NAND中的位置。
-MAGICIDs:特定的标识符,用于识别不同的启动模式。
**NAND启动详细流程**1.初始化栈空间、禁止中断、设置DEEPSLEEPZ/GIO0。
2.读取NAND设备ID,初始化NAND控制器。
3.搜索UBL描述符,最多遍历24个块。
4.复制并校验UBL到IRAM,根据UBL描述符配置启动选项。
5.转交控制权给UBL执行。
NAND启动流程图和具体的ARMNANDROMBootloader实例进一步详细说明了这个过程。
此外,支持的NAND设备ID列表确保了对多种NAND闪存设备的兼容性。
DM365的NAND启动模式解析涉及了设备识别、错误检测、固件加载和执行等多个环节,确保了系统的稳定和可靠启动。
理解这一过程对于开发和调试基于DM365的嵌入式系统至关重要。
2025/5/20 16:04:21
249KB
DM365
1
TIDM36x系列DSPNANDflash启动过程最新TI中文资料
###TIDM36x系列DSPNANDFlash启动过程详解####一、NANDFlash启动原理#####1.1DM365支持的NAND启动特性TI的TMS320DM365(以下简称DM365)多媒体处理芯片支持多种启动方式,包括NANDFlash启动。
在NANDFlash启动过程中,DM365具有一系列独特的启动特性:1.**不支持一次性全部固件下载启动**:DM365不支持一次性将所有固件数据从NANDFlash读入内存并启动,而是采用分阶段的方式。
首先从NANDFlash读取第二级启动代码(UserBootLoader,UBL)至ARM内存(ARMInternalMemory,AIM),然后执行UBL。
2.**支持最大4KB页大小的NAND**:支持的NANDFlash页大小可达4KB,这对于大多数常见的NANDFlash设备来说是足够的。
3.**支持特殊数字标志的错误检测**:在加载UBL时会进行错误检测,尝试最多24次在不同的block中寻找特殊数字标志,以确保数据的正确性。
4.**支持30KB大小的UBL**:DM365有32KB的内存用于存放启动代码,其中2KB用于RBL(ROMBootLoader)的堆栈,剩余的空间可用来存储UBL。
5.**用户可选的DMA与I-cache支持**:用户可以根据需要在RBL执行期间启用或禁用DMA和I-cache等功能。
6.**支持4位硬件ECC**:支持每512字节需要ECC位数小于或等于4位的NANDFlash,这有助于提高数据的可靠性。
7.**支持特定的NANDFlash类型**:支持那些需要片选信号在Tr读时间保持低电平的NANDFlash。
#####1.2NANDFlash启动流程NANDFlash启动流程是指从芯片上电到Linux操作系统启动的整个过程,主要包括以下几个步骤:1.**ROMBootLoader(RBL)阶段**:当DM365芯片上电或复位时,会根据BTSEL引脚的状态确定启动方式。
如果是NAND启动,则从ROM中的RBL开始执行。
RBL会初始化必要的硬件资源,如设置堆栈,关闭中断,并读取NANDFlash的ID信息以进行适当的配置。
2.**UserBootLoader(UBL)阶段**:RBL从NANDFlash读取UBL并将其复制到AIM中运行。
UBL负责进一步初始化硬件资源,如DDR内存,并为下一阶段准备环境。
3.**U-Boot阶段**:UBL从NANDFlash读取U-Boot并将其复制到DDR内存中运行。
U-Boot是完整的启动加载程序,它负责最终从NANDFlash读取Linux内核并将其复制到DDR内存中。
4.**Linux内核启动阶段**:U-Boot启动Linux内核,内核加载并运行,此时系统完成启动。
####二、NANDFlash启动的软件配合实现#####2.1UBL描述符的实现UBL描述符是UBL读取和执行的起点。
在NANDFlash中,UBL描述符通常位于特定的位置,包含UBL的起始地址和长度等信息。
RBL通过读取这些描述符来确定UBL的具体位置并加载到AIM中。
#####2.2U-Boot启动实现U-Boot是一种开源的启动加载程序,负责从NANDFlash读取Linux内核并将其加载到内存中。
U-Boot的实现依赖于UBL提供的环境,例如已经初始化的DDR内存。
#####2.3U-Boot更新UBL和U-Boot的原理U-Boot可以被用来更新UBL和自身的代码。
这一过程通常涉及到从NANDFlash读取新的代码版本,验证其完整性,并将其替换现有的UBL或U-Boot代码。
#####2.4NANDFlash没有坏块的情况在理想情况下,即NANDFlash没有坏块的情况下,启动流程会非常顺利。
RBL能够成功地从NANDFlash读取UBL,UBL也能正确地读取U-Boot,进而完成Linux内核的加载。
####三、结束语DM365的NANDFlash启动过程是一个复杂的多阶段过程,涉及ROMBootLoader(RBL)、UserBootLoader(UBL)和U-Boot等多个组件之间的协调工作。
通过对这些组件的理解和优化,可以有效地提高启动速度和系统的稳定性。
希望本文能帮助读者更好地理解DM365的NANDFlash启动过程及其背后的技术细节。
2025/5/20 15:59:25
439KB
DSP
NANDflash
启动过程分析
1
DM365启动分析1
在本文中,我们将深入探讨DM365芯片的启动流程,特别是针对NAND和UART两种启动模式。
DM365是一款基于DaVinci技术的多媒体处理器,其启动机制涉及到多个组件,包括MMU、数据缓存和指令缓存,以及不同类型的BootLoader。
MMU(内存管理单元)在启动阶段必须关闭,这意味着在这个阶段,虚拟地址与物理地址是相同的,这简化了对内存的访问。
数据缓存和指令缓存则用于提高处理器对内存数据的存取速度,它们在启动过程中起到加速代码执行的作用。
DM365的启动模式可以通过设置BTSEL[2:0]跳线来选择。
当设置为001时,系统会从外部的NORFLASH启动;
其他设置则会从内部ROM启动,执行固化在ROM中的RBL(ROMBootLoader)。
RBL是一个不可擦除的BootLoader,负责加载用户定义的UBL(UserBootLoader)到内存特定地址执行。
UBL的大小有限,不能超过14K,因此无法直接包含完整的U-BOOT。
为了启动U-BOOT,我们需要一个小于14K的小型UBL,它位于NANDFlash的前5个block内。
启动流程如下:1.RBL运行,检查NANDFlash设备ID。
2.如果设备ID匹配,RBL查找UBL的描述信息。
3.RBL将UBL复制到ARM内部RAM,并进行ECC校验。
4.UBL加载后,可以进一步加载U-BOOT和操作系统。
对于NANDBOOT模式,RBL会尝试读取NANDFlash的设备ID,然后查找并加载UBL。
如果失败,会尝试其他启动模式,如MMC/SD。
对于UARTBOOT,RBL通过串口与主机程序交互,发送BOOTME信号并等待ACK,以完成UBL的传输。
在UARTBOOT过程中,串口设置和通信协议是关键,RBL与主机程序的交互确保了UBL的正确接收。
一旦UBL通过UART传输到DM365,后续的启动流程与NANDBOOT类似。
DM365的启动涉及多层BootLoader,每层都有特定的任务,从初始化硬件到加载操作系统。
理解这些启动机制对于开发和调试基于DM365的系统至关重要,尤其是在需要自定义启动流程或优化性能时。
同时,熟悉MMU、缓存的工作原理也是优化系统性能的关键。
2025/5/20 15:52:57
326KB
1
(C#+SQL)旅游管理系统
【有详细的过程,图片演示,及代码】【历时两周完成!】实训目的1、理解C#WinForm程序设计的风格,能设计合理的C#项目文件夹结构和公共类,注重代码的重用性,养成良好的标识符命名和代码编写习惯;
2、熟练掌握各种常见的控件属性和事件方法;
3、积累项目开发中常采用的设计模式和比较经典代码片段,并能在以后的项目开发中熟练地运用。
实训内容实训项目:《旅行社管理系统》 1、系统功能分析与系统设计 2、数据库设计 数据库名称:db_travelAgency 数据表: (1)操作员信息表(编号,姓名,密码,类别) (2)客户信息表(编号,姓名,性别,生日,职业,藉贯,联系方式,注册时间) tb_customer(id,customer,sex,birthday,career,birthdayPlace,telephone,registerTime) (3)景点信息表(编号,景点名称,地址,门票价格,简介,级别) (4)省市信息表(编号,省市名,父结点编号,子结点个数,层次数,在兄弟结点中的编号,其他) (5)风景图片信息表(编号,图片名称,二进制数据,景点名称,图片描述) (6)订单信息表(订单编号,客户姓名,目的地,景区名,出发日期,返回日期,住宿标准,导游员,老人数,成人数,学生数,小孩数,总需费用,预付定金,所属旅行团号) (7)旅行团信息表(团号,景点名称,导游员,出发时间,返回时间,游客人数,入住标准) tb_groupInfo(groupID,spotName,guider,departureDate,backDdate,touristNum,dormMoney) (8)导游员信息表(编号,姓名,性别,出生年月,到旅行社的时间,负责区域,出场费,备注) 3、模块编码与调试 (1)登录模块 (2)景点信息管理模块 (3)景点信息查询模块 (4)日常业务模块 (4)系统维护模块 (5)软件版权模块 4、集成测试实训步骤:第1天: 上午—(1)分析系统功能结构,了解业务流程及各功能模块 (2)在sqlserver2005环境创建各数据库和数据表,录入相关数据下午--(1)设计项目文件夹结构,收集素材,编辑App.config文件;
设计文件夹结构:添加并制作app.config文件(2)编写公共类(连接数据库的类,实体类)。
连接数据库的类及其公共方法:第2天:(1)设计登录模块界面布局,并进行编码和调试;
(2)设计系统主界面,并处理好登录模块与系统主界面之间的跳转关系;
系统主界面: 第3天:实现景点信息的添加、修改和删除功能。
添加景点信息:修改景点信息:删除景点信息:第4天:(1)设计景点信息分类查询界面布局 (2)景点信息分类查询功能编码与调试 注意:根据查询选项的不同,在查询条件位置会显示不同的控件。
第5天:(1)设计景点图片浏览器的界面布局点击确定按钮出现第一张图片点击“>”(下一张)点击“>|”(最后一张)点击“<”(上一张) (2)景点图片浏览器功能编码与调试第6天:(1)设计“业务预订管理”界面布局;
加载窗体时:点击“预订”工具条按钮时:修改订单:1、点击[修改]工具条,在订单编号文本框中输入订单号,点击查找,显示该订单信息;
2、对信息进行修改后,点击[保存]更新到数据库。
删除订单 1、点击[删除]工具条按钮,在订单编号文本框中输入订单号,点击查找按钮,在界面显示该订单的信息。
2、点击[保存]工具条按钮,删除在数据库中该订单信息。
(2)业务预订管理功能编码与调试。
参考项目中的源代码第7天:(1)设计旅行团基本查询界面布局;
(2)旅行团查询功能编码与调试说明:查询旅行团信息时,可以按照以下四种方式查询a.所有已经生成的旅行团;
b.按订单号查询;
c.按景点查询有哪些已经设立的旅行团;
d.按出发日期查询有哪些已经生成的旅行团(3)设计生成旅行团功能界面布局 “组建旅行团”消息提示,点击确定后,生成该旅行团的明细信息,显示在datagridview中,并修改订单表中对应的字段(即该订单对应的groupID),并将旅行团明细信息写入到tb_groupInfo表中 (4)生成旅行团功能编码与调试第8
2025/5/18 16:40:14
12.78MB
(C#+SQL)
旅游管理系统
1
rails-url-helpers-lab-v-000-源码
RailsURL帮助器实验室目标使用路由助手生成URL使用:as使用隐式和显式名称绘制路由用变量绘制路线使用需要变量的路由助手生成URL指示在本实验中,您将开始集成页面之间的链接功能,从而为FlatironSchool建立学生管理仪表板。
当前正在通过四个测试,其余的需要实现代码才能开始通过。
为了完成本实验,您将需要完成以下任务:用户应该能够导航到/students以查看所有学生。
用户应该能够在index页面上单击该学生的姓名,并被带到该特定学生的show页面。
在students表中创建一个名为active的新布尔属性。
(提示:您可能必须四处寻找设置(ahem)默认值(应默认为false)的最佳方法。
用户应该能够转到/students/:id/activate来在true和false之间切换其active属性。
(这只是激活路线,而不是实际视图。
2025/5/9 10:44:26
41KB
Ruby
1
聊天室源代码(struts2+spring+hibernate)
16.3系统功能预览 16.3.1选择聊天室网上临时聊天功能16.3.2注册成永久用户功能16.3.3以永久用户登陆选择聊天室聊天功能16.3.3创建临时聊天室进行聊天功能16.3.4管理员修改公开聊天室功能16.3.5管理员删除公开聊天室功能16.3.5管理员管理黑名单-限制IP地址登陆功能16.3.6管理员管理永久用户功能16.4系统分析 16.4.1系统功能模块划分 16.4.2系统流程分析 16.5系统设计 16.5.1数据库逻辑结构设计 16.5.2创建数据库 16.5.3创建表的脚本文件 16.5.4目录和包结构 16.5.5定义HibernateUtil 16.5.6定义Spring配置 16.5.7DAO数据层设计 16.6界面设计及实现 16.6.1选择聊天室首页界面 16.6.2用户聊天界面16.6.3永久用户注册界面 16.6.4永久用户登陆界面 16.6.5永久用户创建临时聊天室界面 16.6.6管理员管理黑名单界面16.6.7管理员管理聊天室界面 16.6.8管理员管理永久用户界面 16.7数据层代码实现 16.7.1创建对象/关系映射文件 16.7.2创建持久化类 16.7.3创建实现DAO模式的公用部分 16.8功能代码实现概述 16.9选择聊天室网上临时聊天功能 16.9.1聊天功能的逻辑设计 16.9.2配置Struts 16.9.3创建模型ChatInfo 16.9.4聊天功能 16.10注册成永久用户功能 16.10.1注册功能的逻辑设计 16.10.2配置Struts 16.10.3创建模型UserInfo 16.10.4聊天功能 16.11以永久用户登陆选择聊天室聊天功能 16.11.1登陆功能的逻辑设计 16.11.2配置Struts 16.11.3创建模型LoginInfo 16.11.4登陆功能16.12创建临时聊天室进行聊天功能 16.12.1添加临时聊天室功能的逻辑设计 16.12.2配置Struts 16.12.3创建模型LoginInfo 16.12.4添加临时聊天室功能 16.13管理员管理公开聊天室功能 16.13.1管理员管理公开聊天室功能的逻辑设计 16.13.2配置Struts 16.13.3创建模型ChatRoomInfo 16.13.4创建公开聊天室的数据访问对象ChatRoomDAOImp 16.13.5查看公开聊天室列表功能 16.13.6添加公开聊天室功能 16.13.7删除公开聊天室功能 16.13.8编辑公开聊天室信息功能 16.14.管理员管理黑名单-限制IP地址登陆功能16.14.1登陆功能的逻辑设计 16.14.2配置Struts 16.14.3创建模型ChatRoomInfo 16.14.4限制IP地址功能16.15管理员管理永久用户功能16.15.1登陆功能的逻辑设计 16.15.2配置Struts 16.15.3创建模型UserInfo 16.13.5查看永久用户列表功能 16.15.4限制ID登陆功能 16.15.4限制IP地址发言功能 16.16运行工程 16.16.1开发平台 16.16.2创建工程 16.16.3运行工程 16.17本章小结
2025/5/7 0:43:16
12.14MB
Java
struts2
hibernate
spring
1
GenymotionV2.8.1破解版Crack可设置3G/4G/WIFI等网络类型,可打电话发信息改IMEI号设备ID
GenymotionV2.8.1Crack(Player,GenymotionShell等均可破解)可设置3G/4G/WIFI等网络类型,可打电话发信息改IMEI号设备ID等所有功能,特别适合广大一线开发者安全无毒,简单好用genymotion.exegenyshell.exeplayer.exe替换安装目录下的文件详细请看,有图有真相,不来虚的http://blog.csdn.net/kyvin8/article/details/52201727旧版下载链接及评论http://download.csdn.net/detail/kyvin8/9664281
2025/4/30 14:38:10
3.17MB
Genymotion
Crack
破解版
注册码
1
yadm:另一个Dotfiles经理-源码
yadm-另一个Dotfiles管理员yadm是用于管理点的工具。
基于,具有Git的全部功能支持系统特定的备用文件或模板文件使用,,或加密私人数据可自定义的初始化(引导)可定制的挂钩,适用于任何操作之前和之后完整的功能,用法,示例和安装说明可在网站上找到。
快速浏览#Initializeanewrepositoryyadminit#Cloneanexistingrepositoryyadmclone#Addfiles/changesyadmaddyadmcommit#Encryptyoursshkeyecho'.ssh/id_rsa'>~/.config/yadm/encryptyadmencrypt#Later,decryptyoursshkeyyadmdecrypt#CreatedifferentfilesforLinuxvsMacOSyadmaddpath/file.cfg##os.Linuxya
2025/4/28 1:17:34
138KB
git
bootstrap
dotfiles
bash
1
t1-python:MediaMath平台API的PythonSDK-源码
TerminalOne-Python用于MediaMathAPI的Python库。
该库包含用于处理T1API和管理实体的类。
它是为Python2.7和>=3.3编写的。
通过将模块捆绑在一起,可以与Python3兼容。
可在[<><>]{}__上获得API文档。
安装在虚拟环境中使用pip进行安装很简单:$pipinstallTerminalOne或者,将存储库的最新标签下载为tarball或zip文件,然后运行:$pythonsetup.pyinstall执行和管理API服务对象classterminalone.T1(用户名=None,密码=None,api_key=None,client_secret=None,auth_method=None,session_id=None,
2025/4/25 10:47:27
143KB
sdk
ignore-list
Python
1
淘宝大数据集——包含数据分析全部过程的代码案例
近400多万条数据,可以做大数据分析的案例和练习,可以作为推荐系统的学习字段(id,userid,age,gender,item_id,behavior_type,item_category,date,province)(序号,用户ID,性别,商品ID,用户行为,商品种类,发生日期,发生省份)//1.浏览、2.收藏、3.加购物车4.购买至于如何去分析,资源里面附着Hadoop分析代码与Python可视化代码案例,当然仅供参考,你也可以自由发挥!
2025/4/25 1:08:25
201.98MB
大数据
淘宝数据
Hadoop案例
spark
1
共 707 条记录
首页
上一页
下一页
尾页
钉钉无人值守自动打卡脚本 永不迟到的神器 安卓和苹果教程
New!
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03
15KB
钉钉
钉钉打卡
个人信息
点我去登录or注册
|
微信登录
一言
热门下载
双系统双频伪距单点定位程序
中科院考博英语2009-2018年试题及答案解析(十五套436面).pdf
Docker构建tomcat镜像jdk1.8+tomcat9.zip
飘逸传世引擎源代码
数据库系统概论第五版
CNS2_CN_VW_P0095D_0332.7z
HTML5+CSS3中文参考手册(3手册)chm版中文参考手册打包
StimulsoftReports2020.1.1License.rar
吉利新金刚2016款车机导航系统
几何画板课件350套.zip
R9390系列BIOS修改和风扇调速工具
ENVI去云补丁Haze_tool文件及其使用说明和安装方法
KEPServerEXV6.7.zip
新升级版TP5商城小程序源码+公众号版+h5一整套源码V3.zip
ABAQUS金属非稳态和稳态切削过程的模拟分析_张东进.pdf
最新下载
JLINK驱动4.40版本
基于QT的虚拟仪表设计
CleanMyMacXChinese4.7.3.dmg_CleanMyMacXforMacv4.6.12-网络安全文档类资源
3CDaemon.rar
NFCPN532模块视频教程3
C#数字华容道小游戏
堆箱子微信小游戏源码
openGL配置源文件
S7-200PLC的PID控制功能
jatin-puri-coder.github.io-源码
遥感解译计算Kappa系数
javaweb在线考试系统
编写高质量代码改善Python程序的91个建议
黑苹果灯光调节补丁ACPIDebug.kext
SwitchHosts._linux_x64_3.5.7.5554.zip
其他资源
毕设之在线教育网站
83.0.4103.116_chrome_installer.rar
生信技能树
2/3FEC编码和解码程序
动态规划实现最佳加法表达式求最小值
小波分析检测奇异值的ppt
基于模糊PID的恒张力控制系统设计
IntroductiontoRobotics机器人学导论第三版原书英文版
Ajax和Jquery基础入门视频百度云下载全
cs5463电能功率丈量法度圭表标准
LM317可调稳压电源
2018网络工程师资源完整版
功能测试规范.pdf
C#实现打印PDF文件
数据分析方法课后习题答案及习题答案各章例题之SAS法式
C语言中文API
STM8最全C实例
运用Socket传输音频
模仿完成360桌面水晶球式的一键清理特效
新概念模拟电路1-4本杨建国