共2条
1/1 1 跳转至页
CCS,for,c2000 使用CCS for c2000 的问题
问
最进开始学习DSP, 用的是28XX,在看C编译手册的时候有几个地方不懂:
1.开发DSP是不是一盯要用汇编写启动代码?
2._c_int00 _c_int0 _main 的关系搞不明白,分别跳转到这三个地方的时候CPU做了哪些不同的工作?
3.heap的作用,书上讲是为了动态申请内存,假如我在c中不动态申请内存是不是可把他设置为0?
4.用C编写中断程序的时候,需不需要在中断向量上加跳转指令?
我是学单片机出身的,问题太幼稚请各位大侠不要笑,总感觉CCS很难用,不象用KEIL C和ICCAVR 那样简单,看了几天的技术文档,对怎样把汇编代码和C代码连起来用还是很模糊,各位大侠能不能给些学习DSP的建议,或推荐一些资料!!
小弟感激不尽!!
答 1: re.2000系列DSP像单片机一样,基本上没有启动代码的概念。建议你找个程序例子看看。最简单的例子就行了,例如控制GPIO的程序。另外买几本书看看,你的问题书上都有解释。 答 2: 关于CCS的切身体会
我已经从CCS2000转到了现在的专业做DSP64XX,感觉上DSP2000真的像16位单片机那么简单。如下尽力回答你的问题,希望起到抛砖引玉的效果:
(如下是搂主提问)
使用CCS for c2000 的问题:
1.开发DSP是不是一盯要用汇编写启动代码?
我所开发过的DSP2000项目,全都用了汇编启动代码,建议你也采用。你是从单片机转过来的,熟悉汇编编程,只要选择\ti\tutorial中的一个hellow例子,看看其中的asm文件,比葫芦画瓢就完成。我的体会:做DSP程序开发,学会如何以及从哪里copy程序,很重要:)
2._c_int00 _c_int0 _main 的关系搞不明白,分别跳转到这三个地方的时候CPU做了哪些不同的工作?
我没有见过_c_int0这个地址标号。_c_int00是程序启动入口地址,一般就是复位中断的跳转地址。_main是给用户留出来的c程序开始地址,也就是告诉用户可以从这里开始编写自己的c程序。从_c_int00到_main之间,还有一些C自动生成的代码,用来实现程序从外部flash加载(DSP6000必定有这一步,不知道DSP2000中是否相同)、c全局变量初始化任务等等事务。
3.heap的作用,书上讲是为了动态申请内存,假如我在c中不动态申请内存是不是可把他设置为0?
我没有试验过把heap设置为0是否正常工作,而是设置的比较小,例如1K byte。因为你从单片机上转过来的,对使用标准C可能不习惯(我就是这样),否则我建议你把heap设置为memory的一半左右,不要习惯性地采用全局静态地址存放大量数据,而是用动态内存申请,在程序中动态地使用memory,这样的话对编写大程序有利。
4.用C编写中断程序的时候,需不需要在中断向量上加跳转指令?
我在做DSP2000的时候,都是采用对中断向量跳转指令修改地址来实现中断编程的。你只要在汇编写启动代码的相应地方,把相应的地址修改成你的中断入口地址就好了(不要忘了把中断入口地址用_global声明哦)。默认情况下,C程序把不用的中断都跳转到一个软件陷阱中。
总结:
我在此要责骂TI公司,他们对DSP入门设置的门槛太高。我也是从MCS51单片机转过来的,也经历了类似楼主的痛苦经历。TI提供的各种实用手册等等资料,往往把读者假定为已经非常熟悉他们的DSP汇编编程,在C语言编程的help等资料中,也总是提及汇编的很多内容,使得学习者无所适从。我在编写DSP6000 boot程序的时候,总是因此遇到困难,痛恨TIing。
附一块正在调试的TMS320DM642-600的电路板,我只用了4层板完成的,并且只在top/bottom两层布线,中间的两个电源层没有信号线。
http://www.21icsearch.com/buzi/upimage/upfile/2005181442050.jpg
我也因为没有朋友相互讨论DSP的技术问题感到痛苦,往往遇到一个难题自己憋很久不能解决。
欢迎对DSP感兴趣的朋友互相联系。我在上海,联系方式如下:
021-62803271
David@SmartSystem.com.cn
史修栋
答 3: RE:谢谢donggui,shixiudong两位高人,特别要谢谢史修栋大侠帮我回答了每个问题,实在是太感谢了!!!两位可以认识一下吗,小弟想拜师,不知能否收下?
我叫朱杰作 今年干毕业,现在从事无人直升机的飞行控制。QQ:5772725
TEL:13667988692 答 4: 欢迎加我MSN讨论DSP技术问题:shixiudong@hotmail.com我没有QQ,只有MSN。只要我开机,必定MSN在线。
欢迎任何朋友加我讨论技术问题:
MSN: shixiudong@hotmail.com
史修栋
1.开发DSP是不是一盯要用汇编写启动代码?
2._c_int00 _c_int0 _main 的关系搞不明白,分别跳转到这三个地方的时候CPU做了哪些不同的工作?
3.heap的作用,书上讲是为了动态申请内存,假如我在c中不动态申请内存是不是可把他设置为0?
4.用C编写中断程序的时候,需不需要在中断向量上加跳转指令?
我是学单片机出身的,问题太幼稚请各位大侠不要笑,总感觉CCS很难用,不象用KEIL C和ICCAVR 那样简单,看了几天的技术文档,对怎样把汇编代码和C代码连起来用还是很模糊,各位大侠能不能给些学习DSP的建议,或推荐一些资料!!
小弟感激不尽!!
答 1: re.2000系列DSP像单片机一样,基本上没有启动代码的概念。建议你找个程序例子看看。最简单的例子就行了,例如控制GPIO的程序。另外买几本书看看,你的问题书上都有解释。 答 2: 关于CCS的切身体会
我已经从CCS2000转到了现在的专业做DSP64XX,感觉上DSP2000真的像16位单片机那么简单。如下尽力回答你的问题,希望起到抛砖引玉的效果:
(如下是搂主提问)
使用CCS for c2000 的问题:
1.开发DSP是不是一盯要用汇编写启动代码?
我所开发过的DSP2000项目,全都用了汇编启动代码,建议你也采用。你是从单片机转过来的,熟悉汇编编程,只要选择\ti\tutorial中的一个hellow例子,看看其中的asm文件,比葫芦画瓢就完成。我的体会:做DSP程序开发,学会如何以及从哪里copy程序,很重要:)
2._c_int00 _c_int0 _main 的关系搞不明白,分别跳转到这三个地方的时候CPU做了哪些不同的工作?
我没有见过_c_int0这个地址标号。_c_int00是程序启动入口地址,一般就是复位中断的跳转地址。_main是给用户留出来的c程序开始地址,也就是告诉用户可以从这里开始编写自己的c程序。从_c_int00到_main之间,还有一些C自动生成的代码,用来实现程序从外部flash加载(DSP6000必定有这一步,不知道DSP2000中是否相同)、c全局变量初始化任务等等事务。
3.heap的作用,书上讲是为了动态申请内存,假如我在c中不动态申请内存是不是可把他设置为0?
我没有试验过把heap设置为0是否正常工作,而是设置的比较小,例如1K byte。因为你从单片机上转过来的,对使用标准C可能不习惯(我就是这样),否则我建议你把heap设置为memory的一半左右,不要习惯性地采用全局静态地址存放大量数据,而是用动态内存申请,在程序中动态地使用memory,这样的话对编写大程序有利。
4.用C编写中断程序的时候,需不需要在中断向量上加跳转指令?
我在做DSP2000的时候,都是采用对中断向量跳转指令修改地址来实现中断编程的。你只要在汇编写启动代码的相应地方,把相应的地址修改成你的中断入口地址就好了(不要忘了把中断入口地址用_global声明哦)。默认情况下,C程序把不用的中断都跳转到一个软件陷阱中。
总结:
我在此要责骂TI公司,他们对DSP入门设置的门槛太高。我也是从MCS51单片机转过来的,也经历了类似楼主的痛苦经历。TI提供的各种实用手册等等资料,往往把读者假定为已经非常熟悉他们的DSP汇编编程,在C语言编程的help等资料中,也总是提及汇编的很多内容,使得学习者无所适从。我在编写DSP6000 boot程序的时候,总是因此遇到困难,痛恨TIing。
附一块正在调试的TMS320DM642-600的电路板,我只用了4层板完成的,并且只在top/bottom两层布线,中间的两个电源层没有信号线。
http://www.21icsearch.com/buzi/upimage/upfile/2005181442050.jpg
我也因为没有朋友相互讨论DSP的技术问题感到痛苦,往往遇到一个难题自己憋很久不能解决。
欢迎对DSP感兴趣的朋友互相联系。我在上海,联系方式如下:
021-62803271
David@SmartSystem.com.cn
史修栋
答 3: RE:谢谢donggui,shixiudong两位高人,特别要谢谢史修栋大侠帮我回答了每个问题,实在是太感谢了!!!两位可以认识一下吗,小弟想拜师,不知能否收下?
我叫朱杰作 今年干毕业,现在从事无人直升机的飞行控制。QQ:5772725
TEL:13667988692 答 4: 欢迎加我MSN讨论DSP技术问题:shixiudong@hotmail.com我没有QQ,只有MSN。只要我开机,必定MSN在线。
欢迎任何朋友加我讨论技术问题:
MSN: shixiudong@hotmail.com
史修栋
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 | |
【分享评测,赢取加热台】使用8051单片机驱动WS2812被打赏40分 | |
【换取逻辑分析仪】rtthread添加RRH62000传感器驱动-基于野火启明6M5被打赏48分 | |
换逻辑分析仪+Verilog多输入门被打赏27分 |