在我们对DSP编程的时候,相信没有人会把所有的代码都放在同一个源文件里面:光各种寄存器的初始化代码就有几百上千行了,再加上我们自己书写的代码,想想假如一个.c文件里面有一万行,该如何管理、调试呢?所以要按照功能、寄存器分类等进行划分,这样一个工程就包含了很多的头文件、源程序等等,每个源程序经过编译、汇编之后都会产生单独的目标文件。因为对于程序的任何一点修改,都需要编译器进行编译,如果每次都把所有的程序进行重新编译的话,是对时间和资源的极大浪费:特别是那些基于Eclipse的编译环境,因为基于Java这样的技术,本身就很慢,如果一次编译的文件很多,编译过程是非常痛苦的等待,甚至经常怀疑编译环境是不是已经挂掉了?所以为了提高效率,我们可以使用增量编译技术只对有修改的文件进行重新编译和汇编,而没有修改的则不需要更新目标文件。但是因为编译器和汇编器对每个源文件是单独汇编的,它们并不知道某个模块中的数据和程序相对于另一个模块而言,具体位置在哪里,所以接下来我们就需要使用链接器把所有的目标文件给“拼接”起来,最终生成一个可以独立运行的文件,即可执行文件。它的功能包括三个主要的步骤:
(1)将代码和数据放入“假想”中的内存:链接器基于.cmd文件中对存储器地址的划分,按照不同的段把代码和数据分别装入对应的地址中;当然这完全是在电脑上完成的,不需要实际的DSP和RAM“出面”。
(2)为数据和指令分配内存地址:最简单的例子,为函数中断的入口制定一个地址,这样在进中断的时候,程序指针直接跳转到中断入口的地址就行了。
(3)修改内部和外部的引用:链接器使用每个目标文件中的重定位信息和符号表,来解析某个目标文件中未定义的符号,因为它有可能是在别的目标文件中定义的。
为了更好地理解链接器的行为,我们就需要了解一下它的配置选项。链接器的配置选项也很多,但是和程序优化的那些选项相比,其含义要更容易理解一些。表1是链接器的最基本选项,定义了链接器正常工作所必须的参数。
链接器的文件搜索选项则是链接器用来寻找文件时使用的,例如查找某个和FPU运行有关的浮点库函数,如表2所示。
关键字:DSP cmd 寄存器
引用地址:
DSP编程技巧-揭开编译器神秘面纱之链接器的基本选项
推荐阅读最新更新时间:2024-05-02 23:07
DSP芯片基于SC16C750B的RS232接口设计
引言 美国TI(Texas Instruments)公司的系列DSP芯片采用哈佛结构、流水线操作、专用硬件乘法器、快速DSP指令,使其在数字信号处理,通信和工业自动化等领域得到广泛应用 。TMS320C32是32位浮点处理器。它除了上述特点外,还具有增强型存储器接口、灵活的启动装载(boot loader)、可重定位的中断矢量表、灵活的中断方式和其他外设 ;其通信功能只包括片上集成的一个串口,但在设计中此串口一般被串行A/D或D/A芯片占用,或者被用于与另一片DSP芯片在“握手模式”(handshake mode)下直接连接。
虽然TMS320C32串口有多种工作方式 。但通过串口相应的寄存器并不能直接配置出符合RS232标
[嵌入式]
DSP与DSP功能的ARM
最近在工控领域里的一个项目,看到前期的工程设计人员设计了 Cortex-M3 微处理器 与TI DSP 的搭档来完成整个项目。“为什么不使用 Cortex-M4 的内核?”这个疑问就立刻蹦了出来。今天仔细查询了一下,做个简单的对比,供广大的网友们参考。 上面只是简单提到了几点。3倍于 DSP 的主频频率使得 STM32F407 在一定程序上弥补了在处理浮点运算的不足,而较便宜的价格,不仅使得项目的总成本大幅节省,也便得有 ARM 开发基础的工程师们更容易操控 DSP 的算法。 毕竟是工业控制领域的应用, Cortex-M4 还能充分发挥其过程控制的优势,丰富的IO引脚及兼容的5v TTL电平与外
[嵌入式]
基于现场可编程门阵列的数控延时器的设计
1 引言 利用硬件描述语言结合可编程逻辑器件(PLD)可以极大地方便数字集成电路的设计,本文介绍一种利用VHDL硬件描述语言结合现场可编程门阵列(FPGA)设计的数控延时器,延时器在时钟clk的作用下,从8位数据线输入延时量,到LATCH高电平时锁存数据,可以实现对触发脉冲TRIG的任意量的延时。由于延时范围不同,设计所用到的FPGA的资源也不同,本文详细介绍最大延时量小于触发脉冲周期的情况。该延时器的软件编程和调试均在MuxplusⅡ环境下完成,系统设计选用Altera公司的EPFl0K30AQC208-3,EPCI44l型专用电路,与DSP相结合,应用于雷达目标模拟器的控制部分,实现对目标距离的模拟。 2
[嵌入式]
ATmega48 状态寄存器
状态寄存器包含了最近执行的算术指令的结果信息。这些信息可以用来改变程序流程以实现条件操作。如指令集所述,所有ALU 运算都将影响状态寄存器的内容。这样,在许多情况下就不需要专门的比较指令了,从而使系统运行更快速,代码效率更高。 在进入中断服务程序时状态寄存器不会自动保存,中断返回时也不会自动恢复。这些工作需要软件来处理。 AVR 中断寄存器 SREG 定义如下: ·Bit 7 – I: 全局中断使能 I 置位时使能全局中断。单独的中断使能由其他独立的控制寄存器控制。如果I 清零,则不 论单独中断标志置位与否,都不会产生中断。任意一个中断发生后I 清零,而执行RETI 指令后I 恢复置位以使能中断。I 也可以通过SEI 和CL
[单片机]
以全新的多核SoC架构进行LTE开发
LTE技术通过更有效的传输以提高数据速率,提供功能强大的新设备来提升移动用户的体验。对于基站厂商及其供应商而言,LTE变革的同时也提出了新的技术挑战。有效支持4G系统需要DSP设计的多项创新,这些创新促使业界采用SoC架构,以支持这类系统。本文将探讨德州仪器(TI)的全新SoC架构如何达到4G系统的关键功能。 LTE概述 蜂窝网络的数据使用正迅速成长,基础设备厂商亦期待4G标准,以便为移动用户提供更大的容量及更好的使用体验。3GPP所开发的LTE已被许多运营商选择为无线基站及手机的新一代解决方案。LTE是3GPP标准第8版UMTS的提升。LTE一般称为4G标准,是目前无线传输数据的重大变革。 LTE采用OFD
[嵌入式]
TMS320F206DSP的冗余度TT-VGT机器人
20世纪90年代以来,数字信号处理器(DSP)在自动控制中得到越来越广泛的应用。这主要是因为它具有以下优点:(1)并行体系结构和专用的硬件乘法器使得DSP运算能力极强;(2)高速特性使得DSP能实现实时处理和实时控制。 据调查,目前将DSP应用于机器人控制系统的方案,通常是将机器人位置控制中运动学计算任务交给PC机完成,PC机将计算结果(机器人各关节的转角)下载到以DSP芯片为核心的电机控制器,实现机器人控制 。本文提出将机器人运动学计算任务直接交给DSP的控制方案,利用DSP的并行性计算特点,提高了计算速度,缩小了控制系统的体积。仿真结果表明,该方案计算精度和实时性都较好。 1 TMS320F206 DS
[嵌入式]
ATmega128 ALU
ATmega128 ALU 与32 个通用工作寄存器直接相连。寄存器与寄存器之间、寄存器与立即数之间 的ALU 运算只需要一个时钟周期。ALU 操作分为3 类:算术、逻辑和位操作。此外还提 供了支持无/ 有符号数和分数乘法的乘法器。具体请参见指令集。
[单片机]
基于USB与DSP的指纹识别系统的设计实现
摘要:介绍一种以高速的DSP芯片TMS320VC5402为平台对指纹图像进行实时处理的指纹识别系统,用USB接口芯片与主机进行通信。介绍了系统的硬件、固件、设备驱动程序和应用软件四个方面的设计与实现方法。
关键词:USB 指纹识别 图像处理
指纹的不变性和唯一性使指纹识别技术成为目前应用最广泛的身份验证。近年来随着最新信息处理技术的发展、算法理论的研究以及计算机硬件的高集成和低成本,指纹识别的可靠性不断提高,实用范围不断扩大。由于识别系统数据量较大且要求尽快传入上位机进行处理,所以合理设计数据传输通道成为设计的一个重点。
通用串行总线USB(Universal Serial Bus)是一种新型接口技术。它是由Intel、M
[嵌入式]