【DM365启动机制与Boot】深入解析

DM365是一款由德州仪器(TI)推出的DaVinci系列数字媒体处理器,广泛应用于多媒体设备、视频处理和图像处理等领域。
其启动过程涉及到复杂的硬件初始化和软件加载流程,理解这一过程对于开发和调试基于DM365的系统至关重要。


DM36X的启动机制遵循一个标准的流程,当系统加电或复位后,CPU会从预先设定的地址读取第一条指令。
DM36X提供了多种启动方式,主要分为两种:通过外部存储器接口AEMIF(NOR Flash/OneNand)引导启动和通过ARM内部ROM(AIROM)引导启动。
启动模式的选择由BTSEL[2:0]引脚的状态决定。


例如,当BTSEL[2:0]设置为001时,系统将从AEMIF执行引导启动代码,即从外部的OneNand或Nor Flash启动。
而AIROM则支持多种启动模式,包括BTSEL[2:0]=000的NAND Boot,BTSEL[2:0]=010的MMC/SD Boot,以及BTSEL[2:0]=101的SPI Boot等。


Nand Boot Mode是DM365的一种常见启动方式,但因为处理器的AIRAM空间有限且NAND Flash不支持XIP(执行-in-place)技术,因此需要经过三个阶段的代码来完成从NAND Flash引导启动操作系统。
这一流程包括了初始化硬件、加载用户引导加载器(UBoot)到内存以及执行UBoot。


User Bootloader是DM365启动过程中的关键部分,其源码主要位于PSP包的board_utilities/flash_utils目录下。
入门代码由汇编文件start.S开始,负责切换操作模式、建立堆栈,并跳转到main函数。
在main函数中,LOCAL_boot函数负责实际的引导功能,包括调用Device_init()和NANDBOOT_copy()。


Device_init()函数完成了平台的底层初始化,如电源域、时钟、DDR、EMIF、UART、I2C和TIMER等模块的设置。
它首先屏蔽和清除中断,然后通过调用DEVICE_PSCInit启用各模块的电源和时钟,接着配置PINMUX,设置PLL1,配置DDR控制器,EMIF模块,串口0,TIMER0和I2C控制器。


当检测到启动模式配置寄存器(BOOTCFG)的BTSEL[2:0]为000时,系统将调用NAND_init()初始化NAND Flash,并通过NANDBOOT_copy()将紧随其后的Bootloader代码复制到DDR2内存中,以便于后续的程序执行。


Bootloader是嵌入式系统的重要组成部分,它的主要任务是为操作系统提供加载环境。
Bootloader的特点包括:早期系统初始化、设备驱动加载、引导操作系统、支持交互式操作等。
根据工作模式,Bootloader可以分为固件阶段和加载阶段,前者主要负责硬件初始化,后者则负责加载操作系统映像。


DM365的启动过程涉及到硬件配置、软件加载和系统初始化等多个环节,对开发人员理解和优化系统性能具有深远的影响。
了解这些知识,可以帮助我们更好地理解和调试基于DM365的系统,提高其稳定性和效率。
2025/5/20 13:14:23 530KB
1
CISDocker基准测试-InSpec配置文件描述此合规性配置文件以自动化方式实现,以在生产环境中围绕Docker守护程序和容器提供安全性最佳实践测试。
InSpec是一种开源运行时框架和规则语言,用于指定合规性,安全性和策略要求,以测试基础结构中的任何节点。
要求至少是版Docker1.13+平台Debian8Ubuntu16.04CentOS的7属性我们使用yml属性文件来控制配置,以下选项可用:trusted_user:vagrant定义受信任的用户来控制Docker守护程序。
authorization_plugin:authz-broker定义授权插件,以管理对Docker守护程序的访问。
log_driver:syslog定义存储日志的首选方式。
log_opts:/syslog-address/定义Docker守护程序log-opts。
registry_cert_path:/etc/docker/certs.d目录包含各种Docker注册表目录。
registry_name:/etc/docker/certs
2025/4/21 17:27:31 49KB docker security inspec hardening
1
高通9x07软件架构及用户指导,MDM9x07LinuxEnablementSoftwareUserManual
1
FontCreatorProfessional软件简介:FontCreator是一款易用的字体制作、字体编辑软件。
它可以创建、修改ttf,otf,ttc格式的字体文件,并生成可在任意设备使用的标准字体文件。
是Windows系统下制作编辑字体的必备软件。
使用方法:使用FontCreator_v9.0注册工具.rar里面的注册工具算出序列号后,它将询问是否导入到注册表中,此时先不要点“是”;
此时打开C:\Users\Administrator\AppData\Local\Temp\hlfc8.reg文件,修改“[HKEY_CURRENT_USER\Software\High-Logic\FontCreator\8.0\”为“[HKEY_CURRENT_USER\Software\High-Logic\FontCreator\9.0\”,再手动导入到注册表中,即可完成专业版的注册。
注意:注册机算号界面可以自定义用户名(第一个输入框)和机构(第二个输入框),它不支持中文,填入中文将会注册失败!注册后切勿上网检查最新版本,一经检查,注册码就可能失效。
在软件的选项-高级-检查更新,设置为“从不”(最好用防火墙禁止它联网)。
注册机可能为杀毒软件报毒,不会危及到您个人隐私;
如不放心请勿使用;
可直接导入本压缩包事先准备的hlfc9.reg文件导入到注册表中。
2025/4/8 18:51:16 11.66MB FontCreator 字体设计软件
1
开发语言:C#开发工具:MicrosoftVisualStudio2008数据库选择:SQLServer2005数据库名:Stu_Imfornation.mdf数据库中包括的表:1.Student——学生基本信息表2.KeCheng——课程表设计3.Class——班级信息表4.Score——学生成绩表5.User——系统管理者信息表6.ZhengZ——(政治面貌)表7.Bangan——(班干)表功能模块:一.教师管理二.学生管理三.政治面貌查询四.班干信息查询五.成绩查询六.课程查询教师管理包括模块功能:1.添加新班级2.添加学生信息3.修改学生信息4.删除学生信息5.查询课程6.查询成绩7.查询班干信息8.查询学生政治面貌9.管理个人信息(修改登录名、密码)学生管理:1.选择课程2.查询课程3.查询成绩4.查询班干信息5.查询学生政治面貌6.管理个人信息(修改登录名、密码)
2025/4/5 16:07:06 5.67MB 学生信息查询
1
对于资源的描述可移步我博客中的讲解,顺便看看是否是您所需要的。
https://blog.csdn.net/XSZ_94/article/details/80856617或者您也可以到下载免费资源,本资源是在下述资源上做了修改,具体可参照上述链接中的描述。
https://code.msdn.microsoft.com/windowsdesktop/Simple-Multi-User-TCPIP-43cc3b44请不要下载我第一次上传的内容!!!第一次上传不太懂,看评论说不完全。
这次经再三确认后,再上传的资源,如果还有不全,请留言,谢谢!
2025/4/4 15:06:38 241KB vb.net TCP/IP
1
user.github.io
2025/4/3 1:07:47 53KB JavaScript
1
提取自原版光盘,并删除了.ncb.suo.user这三类无用的文件。
使用7zip极限压缩,所以体积不到2M。
保证源代码是完整的。
2025/3/27 18:14:08 1.9MB 把脉 VC++
1
使用matlab实现user-basedcollaborativefiltering,实验数据集为movielens100k。
2025/3/24 5:32:30 10.54MB 协同过滤
1
Rockchip_RK3588S_EVB_User_Guide_V1.0_CN.pdf
2025/3/23 23:22:09 4.63MB RK3588
1
共 235 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡