标签:
博客七周年
我的博客今天2岁137天了,我领取了徽章.
2010.08.01,我在新浪博客安家。
2010.08.05,我写下了第一篇博文:《IC翻新货识別法》。
至今,我的博客共获得4,960次访问。
(2012-10-31 23:33)
标签:
温升
通道
印制板
热分析
热设计
it
摘 要:热分析、热设计是提高印制板热可靠性的重要措施。基于热设计的基本知识,讨论了
PCB设计中散热方式的选择、热设计和热分析的技术措施。
关键词:印制板;热设计;热分析
1热设计的重要性
电子设备在工作期间所消耗的电能,除了有用功外,大部分转化成热量散发。电子设备产生的
热量,使内部温度迅速上升,如果不及时将该热量散发,设备会继续升温,器件就会因过热失效,
电子设备的可靠性将下降。
SMT使电子设备的安装密度增大,有效散热面积减小,设备温升严重地影响可靠性,因此,对热
设计的研究显得十分重要。
2印制电路板温升因素分析
引起印制板温升的直接原因是由于电路功耗器件的存在,电子器件均不同程度地存在功耗,发
热强度随功耗的大小变化。
印制板中温升的2种现象:
(1)局部温升或大面积温升;
(2)短时温升或长时间温升。
在分析PCB热功耗时,一般从以下几个方面来分析。
2.1电气功耗
(1)分析单位面积上的功耗;
(2)分析PCB板上功耗的分布。
2.2印制板的结构
(1)印
(2011-12-02 16:00)
标签:
杂谈
1、要在Memory Section Manager属性中为“Segment For DSP/BIOS Objects” 和
“Segment For malloc()/free()”分配Dynamic Memory
Heaps,必须首先在要分配的段(比如,IRAM)中勾选“create a heap in this
memory“,并给出heaps size。
2、要把*.tcf文件生成的*.cmd文件手动加入工程中,否则编译报错如下:
------------------------------ test.pjt - Debug ------------------------------
Warning: The project has no cmd file while the Text Linker is
selected
[Linking...] 'D:\CCStudio_v3.3\C6000\cgtools\bin\cl6x' -@'Debug.lkf'
>> warning: creating output section .gblinit without SECTIONS
specification
>> warning: creating output section .mem without SECTIONS
specification
>> warning: creating output section .rtdx_data without
SECTIONS specification
>> warning: creating output section .sys without SECTIONS
specification
>> warning: creating output section .clk w
(2011-12-02 15:57)
标签:
杂谈
CMD文件是定位程序代码在存储器位置的文件
一、有关段(sections)的知识
汇编器和链接器产生的可被DSP装置执行的目标程序,这些目标文件格式被称为通用目标文件格式(COFF)。COFF使得模块化编程更容易,它鼓励用户在写汇编语言程序时根据代码块和数据块的方式来思考如何编写程序,这些“模块(block)”就是“段(sections)”。
目标文件的最小单位称为段,段是占据一个连续空间的代码块或数据块,与其他段一起在存储器映射图内。目标文件的各个段是分开的,有特色的。
一个COFF目标文件总是包含3个默认段:
(1).text段,通常包含可执行代码;
(2).data段,通常含有初始化数据;
(3).bss段,通常为未初始化变量预留的空间。
自定义的段:
标签:
杂谈
编译时出现在cmd文件中can't find input file
'Flash2808_API_V302.lib,由于是copy的lib文件,更改了文件夹位置,故需要在新建的工程中添加路径:
In your project add the path
to \DSP280x_headers\cmd to the
library search path under project->build options,
linker tab,
library search path (-i)
标签:
杂谈
1、DSP应用程序代码结构,有三种:
○ 纯汇编;
○ 纯C语言;
○ 汇编+C语言。
这三种结构还可插入带CSL 或不带CSL的DSP/BIOS
API。为了加快应用程序的开发,现在的DSP程序一般都采用:汇编+C语言+带CSL的API。其中,汇编代码用于特殊要求,如Flash编程及对速度
要求很高的关键部分;C语言则是整个应用程序主框架,但主要是运算处理部分;而与硬件打交道的工作全部由CSL API来完成。
DSP应用程序工程模式有两种:调式仿真(debug)模式与应用发布(release)模式。
○
仿真模式用于开发调式阶段,使用仿真器通过JTAG口从PC机中下载到DSP片内RAM中运行,可设置断点进行调式,由于是存放在RAM中,因此断电后程序会丢失;
○
应用程序完全调式通过后,必须写入外部Flash中,断电后不再丢失。加电后,由引导程序装入DSP片内RAM运行,这就是产品生产阶段的发布模式。
很明显,发布模式的DSP应用程序工程(发布工程)比仿真调式阶段的应用程序工程(仿真工程)要复杂些,发布工程除应用程序本身外,还要增加如下处理:
○ 自带的二次引导程序(当应用程序大于1KB时);
χ
(2011-12-02 14:23)
标签:
杂谈
1. dsp项目新建 'hello,DSP
world'工程实例
本人所用版本CCS2.2
一个完整的工程,至少需要四个文件构成:
1、以.cmd结尾的命令文件,用来分配存储空间。
2、C语言系统库rts2xx.lib。系统库包括了编译器所提供的所有功能:初始化C语言环境(入口地址为—_c_int0),设置堆栈,标准C的函数库等,工程中还可以添加其他的库文件(.lib)。
3、有且必须有一个含有main()函数的C语言源程序文件(.c)。系统库初始化完毕后,将控制权交给main()函数。
4、矢量跳转文件,通常为汇编文件(.asm)形式。此文件需要准确的定位在函数起始地址,其内容是汇编文件中的无条件跳转语句“B”。
程序执行的常规流程为:矢量表的第一条指令可设置为“B
_c_int0”,从而在上电复位后,把控制权交给系统库,系统库初始化完毕后,把控制权交给main()函数。
注意:
1、不用添加头文件(.h),编译时,根据设定的路径,头文件会自动扫描进工程。
'hello,DSP world'整个工程流程:
建立前必须
(2011-12-02 14:19)
标签:
杂谈
一.警告:warning:
entry point other than _c_int00 specified
在“TMS320C6000优化汇编手册”第五章“链接C/C++代码”有一段关于_c_int00符号的说明。它是运行支持库(RTS.lib)包含的一个重要函数,用以c语言,在纯汇编情况下不需要。如果Linker选项使用-c或-cr选项,_c_int00被自动定义为程序的入口点。
消除警告的方法:在Linker选项下面选择No
Autoinitialization,则程序的入口点不会自动定义在_c_int00。
二.错误:invalid
operand combination-check version
选择project-option选项,
标签:
杂谈
很多像我这样的初学者都回遇到这个警告,网上也有一些解释,如果在纯汇编的程序下如果LINKER的autoint
model设置不对会出现,但是TI给的例子中并不是纯汇编的程序,但是也出现这个警告,关键问题就出现在LINKER下的CODE
ENTRY POINT
这个选项上,他设置了一个启动地址,并且这个启动地址不是_c_int00,其实默认不添就是从这个地方启动的,这段是TI帮助里的:The
memory address at which a program begins executing is called the
entry point. When a loader loads a program into target memory, the
program counter (PC) must be initialized to the entry point; the PC
then points to the beginning of the program.
The linker can assign one of four values to the entry point. These
values are listed below in the order in which the linker tries to
use them. If you use one of the first three values, it must be an
external symbol in the symbol table.
?The value specified by the -e option. The
syntax is:
-e global_symbol
where global_symbol define
标签:
杂谈
1.warning: function declared implicitly
错误原因
line 10: warning:
function declared implicitly
这是由于没有声明函数原型造成的。
在a.c中,
void main()
{
.....