DM355的启动方式,nand boot,uart boot

嵌入式Linux系统引导与固件更新实战:TFTP、NFS与NAND Flash深度解析 嵌入式系统引导是设备上电后,从硬件初始化到操作系统加载的核心过程,其原理涉及Bootloader、内核镜像和根文件系统的协同工作。在嵌入式Linux开发中,高效的引导与更新技术能极大提升开发效率与产品可维护性。U-Boot作为广泛使用的引导加载程序,提供了通过TFTP协议从网络加载内核、以及通过NFS挂载网络根文件系统的能力,这构成了网络化开发调试环境的技术基础。其核心价值在于,开发者无需反复烧写本地存储介质,即可实现内核与应用程序的快速迭代测试,尤其适用于驱动开发、应用调试等需要频繁修改的场景。而NAND 阅读详情

http://blog.youkuaiyun.com/dog0138/archive/2008/11/29/3400915.aspx


DM355有两种启动方式,是由BTSEL[1:0]引脚决定的

第一种是从片外的Asynchronous EMIF (AEMIF) 启动 是指从片外的三星OneNAND 器件启动

//这儿我觉得是从nor flash启动?

第二种方式是从片内的ROM启动,执行ROM中的ROM boot loader (RBL),RBL支持三种片外介质,BTSEL决定RBL针对哪种介质进行启动

– BTSEL[1:0] = 00 - ARM NAND Boot
– BTSEL[1:0] = 10 - ARM MMC/SD Boot
– BTSEL[1:0] = 11 - ARM UART Boot

现在选择从片外的NAND启动,这种启动方式的具体步骤是RBL先从片外NAND上将UBL(user boot loader)取进ARM内部的RAM中(copies a second stage user boot loader (UBL) from NAND flash to ARM internal RAM (AIM) and transfers control to the user-defined UBL),然后执行,UBL进行的工作是从NAND中将剩下的数据取进DDR中并跳转到那里。

//实际上这跟3星的启动模式差不多,只不过大部分芯片是汇编拷贝,而这里是c语言拷贝,而且美其名曰UBL。


在NAND中存在两种代码,1是UBL,二是用户自己的代码APP,RBL是如何找到UBL的呢,原来对于UBL和APP在Nand中的存储必须符合一定的格式,在存储UBL或者APP代码的第一页是专门用来存储一个信息头,这个信息头的格式如下

/* Some of the parameters are modified runtime */
unsigned int ubldesc [] = {
0xA1ACED00, //Magic number
0x00000020, // Entry point for the UBL
0x00000007, // No. of pages for the UBL code
0x1, // Starting block of UBL in NAND
0x1 // Starting page of UBL in NAND
};

/* Some of the parameters are modified runtime */
unsigned int appdesc [] = {
0xB1ACED22, //Magic number
0x0000000A, // Start block in NAND
0x81080000, // Start address in DDR
0x81080000, // Entry point
0x00000200, // No. of pages for the complete Application
0x00000000  //compression flag
};

这个信息头分别包含了程序加载时的起始地址和入口点等等信息,当DM355复位时,片内ROM上的代码对NAND CONTROLLER进行初始化并且在NAND中寻找UBL的Magic number (事先已经约定好的),找到以后就根据信息头里提供的信息将UBL拷贝进片内RAM中(0x00000020, // Entry point for the UBL//这个可以改 ),然后进行执行,UBL的代码在光盘中有提供,其机制和RBL相同,只不过这个UBL是针对UBOOT的,如果不详执行UBOOT而是向执行自己的代码,那么需要将CCS编译出来的OUT文件转化成bin文件 下载到NAND中。


总结一下nand中存放的东西 UBL、uboot、LINUX的内核映像uimage、文件系统。

前两个的下载是用NAND_programmer进行,NAND_programmer的代码在光盘中也有,就是一段运行在DDR中的程序,将输入的UBL 和uboot文件加上信息头后存储到NAND中

后两个的下载用uboot就能实现。

TI DaVinci DM355开发板入门:从硬件连接到软件开发环境搭建 在嵌入式多媒体开发领域,异构计算架构通过将通用处理器与专用处理单元协同工作,有效提升了音视频编解码等计算密集型任务的性能。其核心原理在于利用ARM处理器运行操作系统和应用逻辑,同时由DSP或硬件加速器专门处理算法,从而在功耗受限的条件下实现高效能。这种设计为实时多媒体处理提供了坚实的技术基础,广泛应用于安防监控、车载娱乐、工业视觉等领域。以德州仪器(TI)的DaVinci技术平台为例,其评估套件如TMS320DM355 DVEVM,便完整呈现了从硬件启动、演示程序运行到交叉编译环境搭建的全流程。开发者通过理 阅读详情

相关推荐

【信息科学与工程学】【产品体系】计算机科学与自动化——第一百八十九篇 操作系统内核(微内核/宏内核)函数与算法02

宏内核(Linux)更多典型内核函数/算法,从编号271开始,覆盖中断管理、热插拔、PCI、ACPI、固件、崩溃转储、kexec、休眠、watchdog、RTC、hwmon、LED、backlight、input子系统、remoteproc等更多领域。编号类型领域内核类型内核中的函数/算法/模块/模组模块的调用关系模块/函数/算法逐步推理思考的数学表达式及参数列表及参数数值设计模块的C/C++/其他代码关联知识271中断管理中断描述符宏内核 / (中断子系统核心)驱动申请中断 → → → 分配irq_

weixin_49199313的博客 106

(10)uboot之UART理解 一

UART串口与SPI类比

yxq1280257646的博客 460

通过 UART 实现 Bootloader 烧录与日志输出(附源码)

UART在嵌入式系统中承担着Bootloader烧录和日志输出的双重核心功能。Bootloader通过UART接收上位机发送的固件数据,采用YMODEM/XMODEM协议进行校验传输并写入Flash;日志系统则通过UART实时输出设备运行状态、调试信息和错误记录。该系统仅需2根信号线,硬件结构简单,支持"烧录-运行-调试"完整闭环。关键实现包括:1)Bootloader模式切换机制;2)数据校验传输协议;3)日志分级格式化输出;4)UART参数一致性管理。该方案广泛应用于MCU设备开发,

Open 1410

uboot学习之UART

- 写在前面的话 本文章为笔者学习uboot时做的笔记,仅供参考 datasheet分析 Exynos 4412 SCP包含4路通用的uart和1路专用于GPS的uart. 每一个uart都包含一个发送fifo和一个接收fifo。 uart和内核通过中断或者DMA传输信息。 Exynos 4412 SCP的组成结构:波特率发生器、发送单元、接收单元和控制单元,如图0-0-1。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s3K9Xzbr-1613358412982)(ht

qq_37400022的博客 1328

UART_boot_file.zip

UART_boot_file.zip

5342.AM57_UART_Boot_SOP_By_TI_Rio_Final.pdf

NFS AM572X UART Download

全志uboot添加uart初始化,利用按键检测进入刷机模式

在uboot阶段进入烧写模式,可以避免变砖后拆机烧录。方便烧录

qq_36081075的博客 890

GPS从入门到放弃(十七) --- 对流层延时

GPS从入门到放弃(十七) — 对流层延时 对流层概念 对流层(Troposphere)地球大气层靠近地面的一层。它同时是地球大气层里密度最高的一层,它蕴含了整个大气层约75%的质量,以及几乎所有的水蒸气及气溶胶。 对流层的下界与地面相接,上界高度随地理纬度和季节而变化,在低纬度地区平均高度为1718公里,在中纬度地区平均为1012公里,在高维度地区平均为8~9公里,并且夏季高于冬季。 卫星导航...

tyst08的专栏 1万+

(12)uboot之UART理解 三

uboot中uart初始化代码 ... uart_asm_init: /*set GPIO to enable uart0-uart4*/ mov r0, r8 ldr r1, =0x22222222 str r1, [r0, #0x0] @ S5PC100_GPIO_A0_0FFSET ldr r1, =0x00002222 str r1, [r0, #0x20] @ S5PC100_GPIO_A0_0FFSET /* UART_SEL GPIO[5] at S5PC100*/ a

yxq1280257646的博客 661

沧小海深入剖析xilinx的GTP/GTX核,掌握高速串行收发机制——第六章 接收端结构及功能说明

总目录在这哦~ https://blog.youkuaiyun.com/z123canghai/article/details/107700878 第六章 接收端结构及功能说明 子目录 6.1 RX的模拟前端 6.2 RX的OOB信号 6.3 RX的均衡器 6.4 RX的CDR 时钟数据恢复 6.5 RX时钟输出结构 6.6 RX 的极性控制 6.7 RX 的PRBS 6.8 Rx字节、字的对齐功能 6.9 Rx接收弹性缓冲区 6.10 Rx的时钟纠正 6.11 Rx接收通道绑定 6...

滄海的博客 1万+

2025-E题国一-简易自行瞄准装置:基于嘉立创地猛星/天猛星与K230的视觉巡线云台系统设计

本文详细介绍了2025年全国大学生电子设计竞赛E题一等奖作品——基于嘉立创地猛星/天猛星与K230的视觉巡线云台系统设计。该系统通过地猛星主控实现小车巡线,天猛星主控驱动云台,结合K230开发板的视觉识别能力,构建了一套完整的视觉巡线云台系统,实现了自动巡线与精准瞄准功能。文章深入剖析了硬件选型、双闭环PID控制算法、视觉识别与目标跟踪等核心技术,并分享了系统调试与避坑经验。

weixin_42596011的博客 674

嵌入式开发基石:DM355引脚复用、复位与启动模式配置详解

在嵌入式系统开发中,引脚复用(Pin Muxing)和复位(Reset)机制是底层硬件驱动与系统稳定性的核心基础。引脚复用通过寄存器配置,将有限的物理引脚在不同功能模块间动态切换,是连接处理器与外设的桥梁,直接影响PCB布线与驱动开发。复位机制则提供了从完全冷启动到模块级软重启的多级恢复能力,是系统从异常状态恢复的关键。理解这些原理对于确保芯片按预期启动和运行至关重要,尤其在视频处理、数据采集等应用场景中。本文以TI DM355 SoC为例,深入剖析其引脚复用寄存器架构、五种复位类型的影响,并结合AEMIF

weixin_30342363的博客 317

不只是对齐:用 MFA 和 Praat 给你的语音数据集快速生成 TextGrid 标注文件

本文详细介绍了如何利用Montreal Forced Aligner(MFA)和Praat工具快速生成TextGrid标注文件,大幅提升语音数据标注效率。通过批量对齐、质量校验和跨语言处理等实战技巧,帮助研究者构建自动化标注流水线,适用于语音合成和语音识别等多种应用场景。

weixin_30675247的博客 378

从DM35x到DM36x嵌入式平台迁移:硬件重构、驱动适配与高清视频处理实战

在嵌入式系统开发中,硬件平台迁移是常见的工程挑战,它涉及从底层电路设计到上层软件栈的全栈适配。其核心原理在于新平台往往在架构、外设集成和性能指标上进行迭代,开发者需要深入理解时钟体系、电源管理和总线协议等基础概念,才能确保系统稳定。这种迁移的技术价值在于能充分利用新芯片的性能红利,如更高的主频、更强的协处理器和更丰富的外设,从而提升产品竞争力。典型的应用场景包括视频监控设备升级、工业视觉系统换代以及需要支持高清编解码的便携媒体终端。本文以德州仪器TMS320DM36x数字媒体处理器为例,聚焦**高清视频协处

weixin_33701294的博客 387

阿波罗开发板硬件架构与STM32模块化设计详解

嵌入式开发板的模块化设计是提升硬件复用性、降低迭代成本的关键技术路径。其核心在于底板与核心板的电气解耦与功能分层,依托STM32系列MCU(如F429/F767)的丰富外设资源与引脚复用能力,实现信号完整性、电源域隔离与热管理的系统级协同。该架构显著支撑工业HMI、智能家居网关、便携医疗设备等典型场景,尤其在RGB LCD驱动、QSPI Flash内存映射、多协议通信(CAN/RS485/USB)及低功耗唤醒(WK_UP按键)等工程实践中展现出高可靠性与易调试性。本文围绕阿波罗开发板展开深度解析,覆盖最小系

weixin_42510201的博客 64

Android 13.0 app进程保活白名单功能实现

在13.0的系统rom产品开发中,在某些重要的app即使进入后台,产品需求要求也不想被系统杀掉进程,需要app长时间保活,就是app进程保活白名单功能的实现, 所以需要在系统杀进程的时候不杀掉白名单的进程,接下来就看怎么样来实现这些功能

安卓兼职framework和app工程师的博客 3142

RBL, UBL, Uboot的关系

http://wiki.davincidsp.com/index.php/SD_card_boot_and_flashing_tool_for_DM355_and_DM365

young honker 1656

STM32面试知识点总结分析

通过Boot引脚设定,寻找初始地址初始化栈指针 __initial_sp指向复位程序 Reset_Hander设置异常中断 HardFault_Handler设置系统时钟 SystemInit调用C库函数 _main。

嵌入式技术开发 2513

基于RK3568打包TPL,SPL,UBoot镜像并运行:实战角度

结合正点原子RK3568开发板理解TPL,SPL,UBoot启动运行流程

weixin_43390831的博客 310

yolov5改进之Fasternet主干网络替换

fasternet替换yolov5主干网络

qq_41920323的博客 5143

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

TI5728串口修改

将光盘资料“U-Boot\U-Boot-2016.05\src”目录下的U-boot内核源码解压到Ubuntu的AM57xx工作目录。打开U-boot源码“board/ti/am57xx”目录下的Kconfig文件,按照下图方法将文件中的参数“3”修改为“1”,表示将MLO启动过程中的打印信息从UART1输出。 打开U-boot源码下的“arch/arm/dts/am57xx-beagle-x...

dongdong12345678900的博客 600

VB摄像头监控

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

mtk_uartboot:为 MediaTek SoC 提供UART刷机解决方案

mtk_uartboot:为 MediaTek SoC 提供UART刷机解决方案 项目介绍 mtk_uartboot 是一款专为 MediaTek 芯片设计的第三方工具,通过 UART 接口加载并执行二进制文件。针对 MediaTek ARM 芯片组,当安全启动(secure-boot)关闭时,该工具能够实现基本支持,允许用户通过 UART 接口恢复损坏的引导程序。 项目技术分析 mtk_uart...

gitblog_00661的博客 1188

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

UART BootROM

BootROM 在download 模式下,支持3种download interface, UART, USB 和SDIO. 通过使用BootROM 命令循环与主机协商以接受DA. 需要通过这三种接口获取和设置数据以进行二进制传输。 Feature firmware download UART device mode init UART device mode de-init UART get...

H691830的博客 1199

AM335X UBOOT(以UART为例分析UBOOT主要流程)

UBOOT2016.05 UART初始化及设置 SPL阶段 第一部分C函数 |- s_init //(arch/arm/cpu/armv7/am33xx/board.c) |- set_uart_mux_conf(\board\ti\am335x\board.c会用到Kconfig文件中的CONFIG_CONS_INDEX来...

weixin_42525096的博客 701

使用nandboot

nandboot是一个非常简短的对nandflash进行操作的boot,因redboot跑不起来,只好先跑一下nandboot。nandboot的编译等操作过程如下:1.把nandboot解压到/home/下2.把/home/try/iMxsdk14/ltib/rpm/BUILD/linux/arch/arm/boot/Image 考到/home/nand_boot/image/下3.把ltib工

beny610的专栏 1754
上一篇: DM355通过串口下载程序方法步骤 ,davinci,串口
下一篇: cygwin make:command not found,make命令 找不到
#Page#
博客等级 码龄23年 1691粉丝 360原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值