打印

谁知道高效编写C语言的要求和方法

[复制链接]
4320|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhenykun|  楼主 | 2011-10-21 17:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
zhanghqi| | 2011-10-21 17:07 | 只看该作者
TI DSP的C语言是标准的ANSI的C,是一个专门优化的C。对于C3x/C5000/C6000的用户,C对于ASM的效率可以达近1:1。

使用特权

评论回复
板凳
jiajs| | 2011-10-21 17:09 | 只看该作者
TI的DSP,每个系列有每个的特点。要编制高效的C程序,建议根据DSP的专门特点,根据实际业务流程来编写语言以及任务进程分配。

使用特权

评论回复
地板
shimx| | 2011-10-21 17:21 | 只看该作者
数据的存放应该放在片内,片外的数据读取会严重影响读取时间和执行效率。

使用特权

评论回复
5
zhaoxqi| | 2011-10-21 17:22 | 只看该作者
对于要求高的子程序,用人工优化或ASM编写。

使用特权

评论回复
6
zhenykun|  楼主 | 2011-10-21 17:25 | 只看该作者
C语言中可以嵌套汇编语言 ?

使用特权

评论回复
7
五谷道场| | 2011-10-21 17:27 | 只看该作者
C语言是汇编语言的进化版本,高级语言是向下兼容的。

使用特权

评论回复
8
五谷道场| | 2011-10-21 17:27 | 只看该作者
具体来说,用C语言编写核心框架程序,用汇编语言编写子程序(执行程序),中断服务程序,通过汇编语言可以提高执行效率。

使用特权

评论回复
9
zhenykun|  楼主 | 2011-10-21 17:29 | 只看该作者
对于C5000,大于48K的程序如何BOOT

使用特权

评论回复
10
spark周| | 2011-10-21 17:30 | 只看该作者
对于C5000,片内的BOOT程序在上电后将数据区的内容,搬移到程序区的RAM中,因此FLASH必须在RESET后放在数据区。

使用特权

评论回复
11
spark周| | 2011-10-21 17:31 | 只看该作者
由于C5000,数据区的空间有限,一次BOOT的程序不能对于48K。

使用特权

评论回复
12
zhenykun|  楼主 | 2011-10-21 17:33 | 只看该作者
有啥解决方法

使用特权

评论回复
13
spark周| | 2011-10-21 17:35 | 只看该作者
在RESET后,将FLASH译码在数据区,RAM放在程序区,片内BOOT程序将程序BOOT到RAM中。

使用特权

评论回复
14
spark周| | 2011-10-21 17:35 | 只看该作者
用户初试化程序发出一个I/O命令(如XF),将FLASH译码到程序区的高地址。开放数据区用于其它的RAM。

使用特权

评论回复
15
spark周| | 2011-10-21 17:38 | 只看该作者
用户初试化程序中包括第二次BOOT程序(此程序必须用户自己编写),将FLASH中没有BOOT的其它代码搬移到RAM中。

使用特权

评论回复
16
spark周| | 2011-10-21 17:38 | 只看该作者
开始运行用户处理程序。

使用特权

评论回复
17
zhenykun|  楼主 | 2011-10-21 17:42 | 只看该作者
嗯,我再缕缕,谢谢

使用特权

评论回复
18
mcu_electron| | 2011-10-24 17:37 | 只看该作者
我认为高效的C语言在于程序整个框架吧。最好是看看标准C。

使用特权

评论回复
19
爱在2012| | 2011-10-25 21:24 | 只看该作者
进来学习一下。

使用特权

评论回复
20
stuotuo| | 2011-10-25 21:30 | 只看该作者
进来学习

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

868

主题

11535

帖子

3

粉丝