omapl138 emif fpgaA最高工作时钟能到多少

SMOMAPL138B-HIREL | C6000 DSP+ARM 处理器 | 数字信号处理器 | 描述与参数
|C0|0|0|0|3498|0|6
SMOMAPL138B-HIREL
(正在供货)
低功耗应用处理器
&(英文內容)
In English
日本語表示
相关终端应用
该器件是一款基于ARM926EJ-S和 C674x DSP 内核的低功耗应用处理器。 它的功率远远低于使用
TMS320C6000 平台的其它 DSP 产品。
凭借全集成化混合处理器解决方案的极大灵活性,这款器件使得 OEM 和 ODM 公司能够快速地向市场投放拥有牢固可靠的操作系统支持、丰富的用户界面和高处理性能寿命的设备。
该器件的双核架构兼具 DSP 和精简指令集计算机 (RISC) 技术的优点, 采用了一个高性能 TMS320C674x DSP 内核及一个 ARM926EJ-S 内核。
ARM926EJ-S 是 32 位 RISC 处理器内核,可执行 32 位或 16 位指令和处理 32 位,16 位或 8 位数据。 该内核采用流水线结构,因此处理器和存储器系统的所有部件能够连续运作。
ARM 内核具有一个协处理器 15 (CP15),保护模块和具有表格后援缓冲器的数据和程序内存管理单元 (MMU)。 它具有分离的 16K 字节指令高速缓存和 16K 字节数据高速缓存。 这两种高速缓存均与虚拟索引虚拟标签 (VIVT) 四路关联。 另外,ARM 内核还具有一个 8KB RAM (矢量表) 和 64KB ROM。
此器件的 DSP 核心使用 1 个基于 2 级快速缓存的架构。 1 级程序高速缓存 (L1P) 是 32KB 直接映射高速缓存,而 1 级数据高速缓存 (L1D) 则为 32KB 两路组相关联高速缓存。 2 级程序高速缓存 (L2P) 包含一个256KB 的内存空间,为程序空间和数据空间所共用。 L2 内存可被配置为映射内存、高速缓存或这两者的组合。 虽然 DSP L2 可由ARM 和系统中的其他主机进行存取,但在不影响 DSP 的性能的情况下,可为其他主机提供额外的 128kB RAM 共享内存。
外设集包括:一个具有管理数据输入/输出 (MDIO) 模块的 10/100Mb/s 以太网 MAC (EMAC);一个 USB 2.0 OTG 接口;一个 USB 1.1 OHCI 接口;两个集成电路间 (I2C) 总线接口; 一个具有16个串行化器和 FIFO 缓冲器的多通道音频串行端口 (McASP);两个具有 FIFO 缓冲器的多通道缓冲串行端口 (McBSP);两个采用多种芯片选择信号的 SPI接口;4个均可配置的 64 位通用定时器(其中一个可被配置为看门狗);一个可配置的 16 位主机端口接口 (HPI);多达 9 组具有可编程中断/事件发生模式的 16 引脚通用输入/输出 (GPIO),与其他外设进行多路复用;3个 UART接口(各具有RTS和 CTS);两个增强型高分辨率脉宽调制器 (eHRPWM) 外设;3 个可被配置为 3 个捕获输入或 3 个辅助脉宽调制器 (APWM) 输出的 32 位增强型捕获 (eCAP) 模块外设;和两个外部存储器接口: 一个异步接口和用于较慢速内存或外设的 SDRAM 外部存储器接口 (EMIFA),以及一个高速 DDR2 / 移动 DDR 控制器。
以太网媒体存取控制器 (EMAC) 在设备和网络之间提供了一个高效接口。 EMAC 支持 10Base-T 和 100Base-TX,即半双工或全双工模式中的 10M 比特/秒 (Mbps) 和 100Mbps。
此外,还为 PHY 配置提供了一个管理数据输入/输出 (MDIO) 接口。
EMAC 支持 MII 和 RMII 接口:
SATA 控制器提供了一个至海量数据存储设备的高速接口。 SATA 控制器支持 SATA I (1.5Gbps) 和 SATA II (3.0Gbps)。
通用并行端口 (uPP) 提供了一个至多种类型的数据转换器,现场可编程门阵列 (FPGA) 或其他并行器件的高速接口。 UPP 在两个通道上均支持 8 位至 16 位的可编程数据宽度。 单倍数据速率和双倍数据速率以及 START,ENABLE 和 WAIT 信号均得到支持,旨在提供对各种数据转换器的控制。
该器件包括一个视频端口接口 (VPIF),从而提供了一种灵活的视频输入/输出端口。
丰富的外设集提供了控制外围设备以及与外部处理器进行通信的能力。 如需了解每种外设的详细信息,请查阅本文件后面的有关章节以及相关联的外设参考指南。
该器件拥有一套用于ARM 及DSP 的完整开发工具。 这些开发工具包括 C 语言编译器、用于简化程序设计和调度的 DSP 汇编优化器以及旨在将可视性引入源代码执行的 Windows& 调试程序界面。
重点内容双核片载系统 (SoC)
375MHz ARM926EJ-S& 精简指令集 (RISC) 微处理器单元 (MPU) 375MHz C674x 定点/浮点超长指令字 (VLIW) 数字信号处理器 (DSP)
增强型直接内存访问控制器 (EDMA3) 串行高级技术附件 (ATA)(SATA) 控制器 DDR2 / 移动 DDR 内存控制器 2 个多媒体卡 (MMC) / 安全数字 (SD) 卡接口 LCD 控制器
视频端口接口 (VPIF) 10/100Mb/s 以太网媒介访问控制器 (EMAC):
可编程实时单元子系统
3 个可配置通用异步接收发射器 (UART) 模块
具有集成型物理层 (PHY) 的 USB 1.1 开放式主机控制器接口 (OHCI)(主机)
具有集成型 PHY 的 USB 2.0 如影随形 (OTG) 端口
一个多通道音频串行端口
2 个多通道缓冲串行端口
双内核 SoC
375MHz ARM926EJ-S& RISC MPU
375MHz C674x VLIW DSP
ARM926EJ-S 核心
32 位和 16 位 (Thumb&) 指令
DSP 指令扩展
单周期 MAC
ARM& Jazelle& 技术
用于实时调试的嵌入式 ICE-RT&
ARM9 内存架构
16K 字节指令高速缓存
16K 字节数据高速缓存
8K 字节 RAM(矢量表)
64K 字节 ROM
C674x 指令集特性
C67x+& 和 C64x+& ISA 扩展集
多达 C674x 每秒处理百万条指令 (MIPS) / 每秒百万个浮点运算 (MFLOPS)
可寻址字节(8 位/16 位/32 位/64 位数据)
8 位溢出保护
位域提取、设定、清空
正常化、饱和、位计数
紧凑 16 位指令
C674x 2 级高速缓存存储器架构
32K 字节 L1P 程序 RAM / 高速缓存
32K 字节 L1D 数据 RAM / 高速缓存
256K字节 L2 单一映射 RAM/ 高速缓存
灵活 RAM / 高速缓存分区(L1 和 L2)
增强型直接内存访问控制器 3 (EDMA3):
2 个通道控制器
3 个传输控制器
64 个独立 DMA 通道
16 个快速 DMA 通道
可编程传输突发尺寸
TMS320C674x 浮点 VLIW DSP 核心
支持非对齐的载入/存回架构
64 个通用寄存器(32 位)
6 个算术逻辑单元 (ALU)(32/64 位)功能单元
支持 32 位整数,SP(IEEE 单精度 / 32 位)和 DP(IEEE 双精度 / 64 位)浮点
每时钟支持高达 4 个 SP 加法,每 2 个时钟支持 4 个 DP 加法
每时钟支持高达 2 个浮点(SP 或者 DP)倒数逼近 (RCPxP) 和平方根倒数逼近 (RSQRxP) 运算
2 个乘法功能单元
混合精度 IEEE 浮点乘法支持高达:
2 SP x SP -& SP 每时钟
2 SP x SP -& DP 每 2 个时钟
2 SP x DP -& DP 每 3 个时钟
2 DP x DP -& DP 每 4 个时钟
定点乘法每时钟支持 2 个 32 x 32 位乘法,4 个 16 x 16 位乘法,或者 8 个 8 x 8 位乘法,和复杂乘法
指令压缩减少代码尺寸
所有指令所需条件
模块环路运行的硬件支持
受保护模式运行
对于错误检测和程序重定向的额外支持
TI DSP/BIOS&
芯片支持库和 DSP 库
128K 字节 RAM 共享内存
1.8V 或 3.3V 低电压互补金属氧化物半导体 (LVCMOS) IO(USB 和DDR2 接口除外)
2 个外部存储器接口:
NOR(8/16 位宽数据)
NAND(8/16 位宽数据)
具有 128MB 地址空间的 16 位 SDRAM
DDR2 / 移动 DDR 内存控制器
具有 512MB 地址空间的 16 位 DDR2 SDRAM 或者
具有 256MB 地址空间的 16 位 mDDR SDRAM
3 个可配置 16550 字节 UART 模块:
含调制解调器 (Modem) 控制信号
16 字节先进先出 (FIFO)
16x 或者 13x 过度采样选项
LCD 控制器
2 个串行外设接口(SPI)每个接口具有多重芯片选择
两个多媒体卡 (MMC) / 安全数字 (SD) 卡接口和安全数据 I/O (SDIO) 接口
两个主/从集成电路间总线接口 (I2C Bus&)
一个具有针对高带宽的 16 位宽多路复用地址/数据总线的主机端口接口 (HPI)
可编程实时单元子系统 (PRUSS)
2 个独立可编程实时单元 (PRU) 内核
32 位载入/存回 RISC 架构
每内核 4K 字节指令 RAM
每核心 512 字节数据 RAM
为了省电,可通过软件将 PRU 子系统 (PRUSS) 关闭
除了 PRU 核心的正常 R31 输出,每个 PRU 的寄存器 30 可从子系统中输出
标准电源管理机制
在一个单一电源和睡眠控制器 (PSC) 时钟选通域下的整个子系统
专用中断控制器
专用开关型中心源
具有集成型 PHY 的 USB 1.1 OHCI (主机) (USB1)
具有集成型 PHY 的USB 2.0 OTG (USB0)
USB 2.0 高速/全速客户端
USB 2.0 高速/全速/低速主机
端点 0(控制)
端点 1,2,3,4(控制、批量、中断、或者 ISOC)Rx 和 Tx
1 个多通道音频串行端口:
2 个时钟域和 16 个串行数据引脚
支持时分复用 (TDM),I2S,和相似格式
支持动态互联网技术 (DIT)
用于发射和接收的 FIFO 缓冲器
2 个多通道缓冲串行端口:
支持 TDM,I2S,和相似格式
AC97 音频编解码器接口
电信接口(ST 总线,H100)
128 通道 TDM
用于发送和接收的 FIFO 缓冲器
10/100Mb/s 以太网 MAC (EMAC):
IEEE 802.3兼容
MII 媒介独立接口
RMII 精简媒介独立接口
管理数据 I/O (MDIO) 模块
视频端口接口 (VPIF):
2 个 8 位 SD (BT.656),单 16 位或者单一原始图像数据(8 位 /10 位 / 12 位)视频捕捉通道
2 个 8 位 SD (BT.656),单一 16 位视频显示通道
通用并行端口 (uPP):
到现场可编门阵列 (FPGA) 和数据转换器的高速并行接口
2 个通道中的每一个通道的数据宽度为 8 位至 16 位(含 8 位和 16 位)
单一数据速率或者双数据速率传输
支持含 START,ENABLE 和 WAIT(开始、使能和等待)控制的多重接口
串行 ATA(SATA) 控制器:
支持 SATA I (1.5Gbps) 和 SATA II (3.0Gbps)
支持所有 SATA 电源管理特性
高达 32 条的硬件辅助本地命令序列 (NCQ)
支持端口复用器和基于命令的开关
具有 32kHz 振荡器及分离电源轨的实时时钟
3个 64 位通用定时器(每个定时器可被配置为两个 32 位定时器)
1 个 64 位通用/看门狗定时器(可被配置为两个 32 位通用定时器)
2 个增强型脉宽调制器 (eHRPWM):
含周期和频率控制的专用 16 位时基计数器
6 个单边,6 个双边对称或者 3 个双边不对称输出
高频载波实现的脉宽调制 (PWM) 斩波
触发区输入
3 个 32 位增强型捕捉模块 (eCAP):
可配置为 3 个捕捉输入或者 3 个辅助脉宽调制器 (APWM) 输出
多达 4 个事件时间戳的单脉冲捕捉
361 焊球塑料球状引脚栅格阵列 (PBGA) 封装[GWT 后缀],0.80mm 焊球间距
商业、扩展或工业温度
社区资源TI E2E 社区 TI 嵌入式处理器维基网页
查看更多内容
特色工具和软件
(软件编解码器)
(JTAG 仿真器/分析器)
Operating Systems
Applications
ARM MHz (Max.)
DSP MHz (Max.)
On-Chip L2 Cache
Display Options
Video Port (Configurable)
Operating Temperature Range
SMOMAPL138B-HIREL
Communications and Telecom
Industrial
256 KB (DSP)
-40 to 105OMAP-L138 EMIFA异步模式访问效率对比 - OMAP-L138 DSP+ARM(R) - 德州仪器在线技术支持社区
OMAP-L138 EMIFA异步模式访问效率对比
发表于10月前
<input type="hidden" id="hGroupID" value="19"
附件通过EDMA访问下的波形与CPU访问的波形对比,明示了EDMA访问效率。&/p>
&p>另外,disable EMIFA的SDRAM的刷新位对于EMIFA访问的效率的提升通常是被人忽略的,也在这里以波形强调出来供大家参考。&/p>&div style=&clear:&>&/div>" />
OMAP-L138 EMIFA异步模式访问效率对比
榜眼32536分
附件通过EDMA访问下的波形与CPU访问的波形对比,明示了EDMA访问效率。
另外,disable EMIFA的SDRAM的刷新位对于EMIFA访问的效率的提升通常是被人忽略的,也在这里以波形强调出来供大家参考。
You have posted to a forum that requires a moderator to approve posts before they are publicly available.基于NOR Flash的OMAPL138双核系统自举引导启动实现
来源:电子技术应用2014年第2期
作者:邓国荣,刘厚钦
摘& 要: 针对传统基于AIS和串口引导启动相对复杂的问题,提出了一种基于NOR Flash实现OMAPL138双核系统二次引导自举启动的方法。在该方案中,分析了OMAPL138双核系统基于系统自举引导启动的实现流程,解决了ARM系统初始化问题,并基于ARM系统完成了OMAPL138系统硬件的初始化和应用程序的复制。最后,通过ARM系统唤醒了系统,并在bootloader最后跳转到ARM应用程序中执行,最终实现了OMAPL138双核系统的运行。实验结果表明,该方案能够实现OMAPL138双核系统的引导启动,较之于传统AIS和串口启动方式更简单,更易于实现。
关键词: OMAPL138;ARM;DSP;bootloader
&&& OMAPL138双核处理器是由TI推出的双核处理器,内部包含ARM和DSP两个内核,已经广泛应用于对讲机等低功耗产品中。目前,OMAPL138双核处理器的自启动通常采用AIS转换器和串口下载程序的方式实现,这种实现方式需要实现串口接收并烧写AIS转换器转换出来的应用程序二进制文件,整个实现比较复杂。本文介绍了一种基于NOR Flash自举引导启动实现OMAPL138自启动的方案,实现简单,易于掌握。详细分析了OMAPL138双核系统的启动流程和实现方法,对于OMAPL138系统应用具有很强的参考价值。
1 OMAPL138双核系统NOR Flash自举启动原理
&& &OMAPL138内部包含ARM和DSP双核,要实现OMA-PL138双核系统的自举启动,就需要实现ARM和DSP双核启动。
&& &本设计采用ARM唤醒DSP的引导启动OMAPL138双核系统,这种方式需要实现ARM核bootloader引导程序和ARM、DSP应用程序段的烧写程序的编写。OMAPL138程序代码段在NOR Flash中的地址映射如图1所示,其中,bootloader代码段存放在OMAPL138的共享内存空间,共享内存空间位于0x起始地址处,而且bootloader程序代码段不能超过16 KB,16 KB是NOR Flash引导启动方式自动拷贝程序代码段的最大范围;ARM应用程序代码段和DSP应用程序代码段首先都存放在OMAPL138的DDR RAM空间中,DDR的起始地址为0xC0000000, ARM应用程序和DSP应用程序必须存放在DDR中的不同地址空间;最后,ARM中断向量表存放在ARM_LOCAL_RAM地址空间,位于0xFFFF0000处。
&&& 基于ARM初始化OMAPL138的bootloader主要完成以下几项工作:
&& &(1)初始化ARM超级模式下的堆栈;
&& &(2)OMAPL138的初始化;
&& &(3)从NOR Flash中拷贝ARM和DSP的应用程序到对应的DDR地址空间;
&& &(4)唤醒DSP;
&& &(5)在main函数中调用跳转到ARM应用程序入口地址执行程序。
&& &首先,bootloader初始化ARM超级模式下的堆栈,因为在超级模式下可以访问OMAPL138的所有寄存器,包括特权模式下才能访问的寄存器,使得ARM系统具备初始化OMAPL138系统条件;其次,OMAPL138的初始化主要包含PSC电源管理模块初始化、PLL时钟管理模块初始化、DDR的初始化和EMIFA初始化等,这些主要是OMAPL138的gel文件中的初始化工作;接下来就是初始化ARM超级模式下的堆栈起始地址和大小,然后就是拷贝ARM和DSP的应用程序到对应的DDR地址空间,这时DSP已经具备了所有启动的环境,可以直接唤醒DSP;最后,在main函数中直接放一个跳转指令(*(void(*)(void))0xC0000000)(),实现由bootloader到ARM应用程序的切换。至此,ARM和DSP应用程序都实现启动运行了。
&& &最后就是所有程序烧写的实现。程序烧写是独立于bootloader、ARM和DSP应用程序的一个应用程序,主要功能是将bootloader程序、ARM应用程序和DSP应用程序烧写到NOR Flash对应的地址空间中去。烧写程序代码主要是NOR Flash读写程序,代码量不大,可以直接放在OMAPL138共享内存中,但是不能与bootloader代码空间重叠。
2 系统设计
2.1 bootloader设计
2.1.1 bootloader启动流程
&& &首先,bootloader被烧写到NOR Flash中起始地址位置处, OMAPL138内部固化的一段代码在上电之后运行,会自动将16 KB的NOR Flash起始地址(0x)处代码复制到OMAPL138的share RAM共享内存起始地址处(0x),其中,0xx bit存放的是系统固化代码配置字,可以配置拷贝数据大小、boot启动方式和访问数据宽度,这里boot启动选择拷贝数据大小为16 bit宽、Legacy NOR boot模式和16 KB数据复制宽度,在拷贝完数据之后,系统会自动跳转到0x处执行。在0x地址处存放的是一个跳转指令BL_bootload_init,使得系统固化的启动代码在跳转到0x地址处开始执行的第一个指令就是跳转到bootloader初始化地址处执行。
&& &bootloader启动流程如图2所示。bootloader起始地址存放的是_bootload_init。首先,该函数更改CPSR的模式控制位和中断控制位,使ARM处于超级模式下工作,这是因为超级模式可以直接访问ARM的硬件资源,而且拥有与用户模式一样的寄存器,而用户模式不能直接访问特权模式下的寄存器;其次,关闭FIQ和IRQ中断使能,初始化超级模式的堆栈;在超级模式堆栈初始化完成之后,通过BL _OMAPL138_CPU_
Init指令跳转到OMAPL138的系统初始化函数中去处理,由于在超级模式下调用该函数,所以OMAPL138_CPU_Init()可以直接访问OMAPL138所有的系统配置寄存器SYS_CFG_
Reg,OMAPL138_CPU_Init()需要完成PSC电源管理模块初始化、PLL时钟管理模块初始化、DDR的初始化和EMIFA初始化等,这些初始化工作是为ARM和DSP应用程序运行提供基本的最小化系统;在OMAPL138初始化完成之后,DDR和EMIFA都已初始化,可以将NOR Flash中的ARM和DSP应用程序拷贝到DDR中,至此,DSP应用程序已经存放在DDR中,并且已经具备了DSP运行的所有环境。接下来即可唤醒DSP。唤醒时需要往系统寄存器HOST1CFG中写入DSP唤醒初始地址,即DSP应用程序的起始地址。DSP唤醒就相当于对DSP做了一次软复位,DSP在唤醒之后直接跳到复位异常地址处运行,DSP复位异常地址存放的是_c_int00函数,该函数是DSP的系统库函数,由该函数初始化DSP运行的C语言环境,并跳转到DSP主函数中运行。至此bootloader基本工作已经完成,可以直接通过调用函数(*(void(*)(void))0xC0000000)()跳转到ARM应用程序对应的起始地址处开始运行ARM应用程序[1-3]。
2.1.2 ARM应用程序的初始化
&& &ARM初始化流程如图3所示。首先,初始化ARM的各个异常对应的堆栈,这段代码是ARM应用程序的初始化代码,一般存放在ARM应用程序代码段的起始地址处,这样便于bootloader直接跳转到ARM初始化开始地址处执行ARM初始化;其次,在ARM异常堆栈初始化完成之后,需要执行LDR PC,_c_int00,这个指令是调用_c_int00函数,这是ARM的一个库函数,完成ARM运行时需要的C语言环境初始化等,并且在这个函数开始处就直接将模式切换成用户模式,完成了用户模式堆栈的初始化,在这个函数最后直接跳转到ARM的main函数中执行ARM的实际应用程序。ARM初始化还必须把ARM的中断向量表初始化映射到0xFFFF0000地址处,这是OMAPL138默认的ARM中断向量表存放地址空间,可以通过cmd文件直接配置。至此,ARM应用程序也开始运行了[4]。
2.1.3 bootloader.cmd和nor_cfg_word.asm的编写
&& &nor_cfg_word.asm文件是一个汇编文件,用来实现对NOR Flash自动拷贝bootloader程序大小的配置以及实现到bootloader初始化程序_bootload_init的跳转。该文件直接由bootloader.cmd配置存放在0x地址处,并且bootloader.cmd文件紧跟着将bootloader.asm启动文件的汇编代码存放在nor_cfg_word.asm文件之后。这两个文件被烧写到NOR Flash的起始地址空间,并最终通过系统上电启动自动将nor_cfg_word.asm配置文件和bootloader.asm启动文件同时复制到0x共享内存share RAM并自动开始运行。
&& &如图4所示,在nor_cfg_word.asm文件中第一个指令必须是.word 0x00000F01,用来实现对NOR Flash自举引导复制程序段的配置,选择为16 KB复制、Legacy NOR boot和16 bit宽度访问,紧跟在配置字之后的是一个跳转指令BL _bootload_init,该指令存放在0x地址处,因为系统上电之后自动跳转到0x地址处执行程序,即执行BL _bootload_init,_bootload_init是bootloader.asm启动文件第一个指令对应的地址,从而实现了到bootloader初始化程序的跳转。
2.2 OMAPL138自举启动流程
&& &整个OMAPL138自举启动流程如图5所示。在Nor_cfg_word中配置NOR Flash的访问数据宽度、访问模式和自动搬运数据块大小,在系统上电之后,就会自动读取Nor_cfg_word配置,从NOR Flash中搬运16 KB数据到OMAPL138的共享内存share RAM中,然后自动跳转到share RAM的地址0x中执行。在这里存放的是bootloader代码第一条指令B _bootload_init,然后执行这条指令,由_bootload_init完成OMAPL138的系统初始化、超级模式堆栈初始化、ARM和DSP应用程序的拷贝和唤醒DSP,整个初始化过程在ARM的超级模式下完成。bootloader最后存放一条指令直接跳转到ARM应用程序初始化地址处,开始执行ARM应用程序。ARM应用程序的初始化主要是初始化各种ARM异常堆栈,ARM应用程序的初始化最后调用ARM库函数自带的初始化C语言环境函数_c_int00,并由该函数自动跳转到ARM应用程序的主函数中执行,整个ARM自举启动完成。DSP在被bootloader唤醒之后直接跳到系统寄存器HOST1CFG中写入的地址处开始执行。这个DSP开始执行的地址处存放的是DSP自带的库函数_c_int00,这个函数会初始化DSP运行所需要的环境,并跳转到DSP应用程序主函数中执行DSP应用程序。至此,OMAPL138双核系统就同时启动运行了[5-6]。
2.3 NOR Flash烧写代码工程设计
&& &在bootloader代码、ARM和DSP应用程序代码下载到对应的地址空间之后,这些代码必须烧写到NOR Flash指定地址空间。其中,配置代码段和bootloader必须存放在NOR Flash起始地址处,这些工作由烧写代码工程完成。在OMAPL138的共享内存share RAM中,bootloader和配置代码段占用16 KB空间,剩下的代码空间可以作为烧写代码工程使用空间,这样就可以使得烧写代码完全独立于其他已经烧写在内存中的代码。在整个代码烧写过程中,下载到OMAPL138内存中的bootloader、ARM和DSP应用程序都不能运行,因为bootloader代码中有对DDR的重新初始化过程,这个过程使得系统脱离了OMAPL138的gel文件初始化,而烧写程序代码是依赖gel文件的初始化环境运行的。所以,为了避免代码运行过程中对烧写代码工程的影响,需要烧写的代码在下载后不可运行,烧写代码过程不能断电,在烧写完成之后,掉电再开始重新上电,烧写的bootloader即开始自举引导启动OMAL138。
3 仿真结果与分析
&& &仿真结果如图6所示。首先,ARM和DSP应用程序中都初始化了串口UART2,用来打印ARM与DSP双核通信信息,然后ARM应用程序通过配置系统寄存器CHIPSIG中的SYSCFG_CHIPINT3向DSP发送系统中断。DSP应用程序通过配置系统寄存器CHIPSIG中的SYSCFG_CHIPINT1向ARM发送系统中断,在ARM和DSP双方通信的各自中断处理程序中,都首先通过串口UART2打印接收到的中断信息,然后延时一段时间,以使ARM和DSP双核不会同时占用UART2资源,在延时之后各自都会向对方发送中断。图5中输出的信息就是在硬件板烧写完程序后上电串口UART2输出的打印信息。由于ARM和DSP双核不断地向对方发送中断,因此不断地向串口输出信息,仿真结果中发送字节数为0,接收字节数为158 437,这是接收的双核通信输出信息,整个仿真结果可靠,充分证明了OMAPL138双核系统被成功引导启动。
&&& 针对传统的基于AIS和串口实现OMAPL138双核系统自启动处理复杂的问题,提出了基于NOF Flash的bootloader二次引导实现OMAPL138双核自启动的方案。在该方案中,分析了基于ARM核的bootloader实现流程和处理内容,解决了bootloader中ARM核系统的初始化,并基于ARM核实现了OMAPL138系统的初始化以及ARM和DSP应用程序的复制,最终通过ARM核唤醒了DSP核,并成功跳转到ARM应用程序中执行,实现了OMAPL138的双核运行。整个方案实现了bootloader、ARM和DSP应用程序及烧写所有程序代码工程都相互独立运行、互不干扰,针对每个工程项目的cmd文件进行了详细分析和介绍,对于整个bootloader启动流程做了详细的说明,整个过程清晰、可靠。实验结果表明,该方案可以实现OMAPL138的自举启动。
[1] 刘远峰,陈志华.一种新的基于TMS320C6000 DSP的Flash引导自启动方法[J].电视技术,):54-57.
[2] 王洁,苏东林,姜铁华.基于TMS320C6000系列DSP的二次Bootl oader研究[J].电子工程师,):53-55.
[3] 刘涛,倪江生,王丹丹.基于DSP的Flash自启动设计[J].仪表技术,2009(9):44-45.
[4] 王鹏,简秦勤,范俊锋.基于TMS320C6000 DSP及DSP/BIOS系统的Flash引导自启动设计[J].电子元器件应用,):35-39.
[5] 余同正,徐龙祥.基于双DSP的磁轴承数字控制器容错设计[J].电子技术应用,):27-29.
[6] 郭唐仕,尹华杰,陈锦云.基于双DSP低电压大电流交换器的模糊PID控制[J].电子技术应用,):79-81.
继续阅读>>
热门关键词OMAPL138,EMIFA接口连接FPGA问题_百度知道
OMAPL138,EMIFA接口连接FPGA问题
数据是改变一个传出一个,还是所有分配区域依次传出我现在想通过DSP实时控制FPGA端的DA,依次扫描,我知道往片内某个地址写数据就能将数据传出,但是请问。通过配置EMIFA
提问者采纳
那FPGA内部就要实现一个类似memory controller的逻辑,是byte,就看你的emifa支持哪些类型,那就是dsp对它片外ram的读写了,以及在FPGA内部控制器是否也能支持了,还是dword,DSP和FPGA通过emifa相连,以达到你想通过dsp读写FPGA内部memory的目地?那emifa的spec你清楚吧?对吗,word,怎么读写, 我的理解正确吗?如果这样的话能不能请您把硬件系统说得更详细点
提问者评价
我自己弄明白了
以后有不懂的再和你交流吧
其他类似问题
为您推荐:
您可能关注的推广
fpga的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁OMAPL138 EMIFA最高工作时钟能到多少_百度知道
OMAPL138 EMIFA最高工作时钟能到多少
我有更好的答案
那就是dsp对它片能不能请您把硬件系统说得更详细点?对吗?那emifa的spec你清楚吧.?那FPGA内部就要实现一个类似memory controller的逻辑.,以达到你想通过dsp读写FPGA内部memory的目地, 我的理解正确吗?如果这样的话,DSP和FPGA通过emifa相连
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 omapl138中文资料 的文章

 

随机推荐