DSP学习bootloader

DSP bootloader学习笔记1

彭会锋

参考:

1 TMS320F28xx DSP中内部Flash的应用研究   http://wenku.baidu.com/view/83e9837931b765ce050814fd.html


1 关于_c_int00问题

从代码注释可以看到 :

_c_int00 is branch to start of boot.asm in RTS libray  //翻译为中文就是:_c_int00是rts2800_ml.lib的入口地址; 
  • _c_int00是C初始化代码的入口地址
  • 在你用C编程的时候,DSP需要执行一段C运行支持库代码以完成C运行环境的初始化,_c_int00就是这段初始化代码的入口地址,
  • _c_int00函数在运行支持库(rts,runtime-support library)中。连接器会将这个函数的入口地址放置在复位中断向量处,使其可以在初始化时被调用。c_int0函数进行以下工作以建立C运行环境:为系统堆栈产生.stack块,并初始化堆栈指针。从.cinit块将初始化数据拷贝到.bss块中相应的变量;
  • 执行完初始化代码后,就跳转到main函数,开始运行C程序;



2 f2802x_codestartbranch.asm的分析

此文件是.asm文件,所以需要懂得些汇编指令问题,下面是一些学习到的汇编命令:

  • 跳转指令:LB;
  • .set : 设置常量给标号 - The .set directive sets a constant value to a symbol;
  • .ref 在别的地方定义的,在这里被应用,类似于c语言的extern;.def是在当前文件中定义变量; .global 应用的范围相对更广些,可以代替.ref和.def;
  • .sect 定义包含代码和数据的自定义段,类似于函数定义,注意这里的格式;
  • 注释从分号“;”开始,可以放在指令或汇编命令的后面,也可以放在单独的一行或多行;


3 最后附上一张dsp启动的完整示意图,方便大家理解,稍后继续写后续几篇学习笔记

时间: 2024-10-12 17:26:31

DSP学习bootloader的相关文章

sharc dsp 学习记录1---2014-07-30

从今天开始记录学习sharc dsp过程中的点点滴滴吧.   DPI:Digital Peripheral Interface DAI:Digital Audio Interface   SHARC SIMD Core SIMD 单指令多数据 ADSP-2148x包含两个用作单指令.多数据(SIMD)引擎的计算处理器元件,分别称为PEX和PEY,各元件均由ALU.乘法器.移位器和寄存器文件组成. PEX始终有效,PEY可通过将MODE1寄存器的PEYEN模式位设为1来使能.SIMD模式允许处理器

初识DSP

1.TI DSP的选型主要考虑处理速度.功耗.程序存储器和数据存储器的容量.片内的资源,如定时器的数量.I/O口数量.中断数量.DMA通道数等.DSP的主要供应商有TI,ADI,Motorola,Lucent和Zilog等,其中TI占有最大的市场份额.TI公司现在主推四大系列DSP1)C5000系列(定点.低功耗):C54X,C54XX,C55X 相比其它系列的主要特点是低功耗,所以最适合个人与便携式上网以及无线通信应用,如手机.PDA.GPS等应用.处理速度在80MIPS--400MIPS之间

嵌入式行业入门指导---知乎转载【转】

此文是本人在知乎上看的,觉得很好就分享出来了,并不是本人原创 转自:https://www.zhihu.com/question/47881392 作者:shang链接:https://www.zhihu.com/question/47881392/answer/146734937来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 嵌入式Linux+Android学习路线图作者:韦东山 本文目录1. 程序员的三大方向 1.1 专业领域 1.1.1 学术研究 1.1.2

名词解释

波特率与比特率:比特率(单位时间内传输的二进制位数)=波特率(单位时间内传输的符号数)*单个调制状态对应的二进制位数. vcc.vdd.vss.vee: 1.对于数字电路来说,VCC是电路的供电电压,VDD是芯片的工作电压(通常Vcc>Vdd),VSS是接地点.2.有些IC既有VDD引脚又有VCC引脚,说明这种器件自身带有电压转换功能 3.在场效应管(或COMS器件)中,VDD为漏极,VSS为源极,VDD和VSS指的是元件引脚,而不表示供电电压.DSP交流网 DSP学习第一论坛 DSP技术应用与

嵌入式开发职业发展方向有哪些?

近几年来,随着移动互联网.物联网的迅猛发展,嵌入式技术日渐普及,在通讯.网络.工控.医疗.电子等领域发挥着越来越重要的作用:随着嵌入式技术及相关产品不断渗透到人们日常生活 ,大大小小公司对于嵌入式开发 人才招聘需求猛增. 在介绍嵌入式开发职业发展方向之前,先了解一下嵌入式设备的本质.嵌入式设备的本质就是一台专用的.微型计算机,所以就像计算机一样由三个层次的东西组成: 1 )硬件,包括 cpu (如 ARM) .存储(如 flash ). I/O (显示模块.通讯模块.视音频模块. I/O控制电路

一步步玩pcDuino3--uboot下的ping,添加命令可以接受来自host的ping

uboot是一个非常优秀的开源项目.不仅仅可以学习bootloader,嵌入式,各种总线协议.还可以了解网络协议栈.在嵌入式开发中,经常使用uboot的tftp和nfs来加快开发的效率.那么在tftp可以使用之前,我们要保证host和pcDuino3可以ping通.在uboot下可以ping通host,但是host不能ping通uboot,这是因为uboot不是操作系统,我们需要做了个命令来循环等待来自host的ping命令. 在为uboot添加命令接受来自host的ping之前,我们先了解一下

嵌入式职业规划

嵌入式职业规划 (大部分内容转载,自己总结) 一.嵌入式系统的概念 着重理解"嵌入"的概念 主要从三个方面上来理解.          1.从硬件上,将基于CPU的处围器件,整合到CPU芯片内部,比如早期基于X86体系结构下的计算机,CPU只是有运算器和累加器的功能,一切芯片要造外部桥路来扩展实现,象串口之类的都是靠外部的16C550/2的串口控制器芯片实现,而目前的这种串口控制器芯片早已集成到CPU内部,还有PC机有显卡,而多数嵌入式处理器都带有LCD控制器,但其种意义上就相当于显卡

堆栈与内存

堆 & 栈的区别 一 英文名称 堆和栈是C/C++编程中经常遇到的两个基本概念.先看一下它们的英文表示: 堆――heap 栈――stack 二 从数据结构和系统两个层次理解 在具体的C/C++编程框架中,这两个概念并不是并行的.深入到汇编级进行研究就会发现,栈是机器系统提供的数据结构,而堆是由C/C++函数库提供的.这两个概念可以从数据结构和系统两个层次去理解: 1.从数据结构层次理解,栈是一种先进后出的线性表,只要符合先进后出的原则的线性表都是栈.至于采用的存储方式(实现方式)是顺序存储(顺序

一步步玩pcDuino3--uboot下的ping,加入命令能够接受来自host的ping

uboot是一个很优秀的开源项目.不只能够学习bootloader.嵌入式,各种总线协议. 还能够了解网络协议栈.在嵌入式开发中,常常使用uboot的tftp和nfs来加快开发的效率.那么在tftp能够使用之前,我们要保证host和pcDuino3能够ping通. 在uboot下能够ping通host.可是host不能ping通uboot,这是由于uboot不是操作系统,我们须要做了个命令来循环等待来自host的ping命令. 在为uboot加入命令接受来自host的ping之前.我们先了解一下