教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 专业资料 >

第6章 C语言程序设计与混合编程

来源:网络收集 时间:2026-08-22
导读: C语言程序设计与混合编程 第6章 C语言程序设计与混合编程 第6章 C语言程序设计与混合编程6.1 C语言程序设计6.2 用C语言和汇编语言混合编程 本章小结 习 题 2013年8月6日3时59分 C语言程序设计与混合编程 第6章 C语言程序设计与混合编程 C54x DSP软件设计的方

C语言程序设计与混合编程

第6章 C语言程序设计与混合编程

第6章 C语言程序设计与混合编程6.1 C语言程序设计6.2 用C语言和汇编语言混合编程 本章小结 习 题

2013年8月6日3时59分

C语言程序设计与混合编程

第6章 C语言程序设计与混合编程 C54x DSP软件设计的方法通常有三种: (1) 用汇编语言开发。此方式代码效率高,程序执行速度快, 可读性较差,可移植性较差,软件的修改和升级困难。 (2) 用C语言开发。CCS平台包括优化ANSI C编译器,从而可

可以充分合理地利用芯片提供的硬件资源。但程序编写比较烦琐,

以在C源程序级进行开发调试,增强软件的可读性,提高了软件的开发速度,方便软件的修改和移植。然而,C编译器无法实现 在任何情况下都能够合理地利用DSP芯片的各种资源。 (3) C语言和汇编语言混合编程开发。采用混合编程的方法 能更好地达到设计要求,完成设计任务。2013年8月6日3时59分 2

C语言程序设计与混合编程

第6章 C语言程序设计与混合编程

6.1 C语言程序设计 6.1.1 C语言特点及语法1. C语言特点 C语言是国际上广泛流行的、很有发展前途的计算机高级语 言。它适合于作为系统描述语言,既可以用来编写系统软件, 也可以用来编写应用软件。 汇编语言依赖于计算机硬件,程序的可读性和可移植性比 较差。而高级语言具有很好的可移植性,但是难以实现汇编语 言的某些功能。因为C语言仍然需要通过编译、连接才能得到可 执行目标程序,所以是一种高级语言。但C语言允许访问物理地 址,能进行位操作,能实现汇编语言的大部分功能,能直接对 硬件进行操作。C语言正是一种既可以访问物理地址又可以进行 位操作的高级语言,这也是其与别的高级语言不同的地方。2013年8月6日3时59分 3

C语言程序设计与混合编程

第6章 C语言程序设计与混合编程 C语言具有如下基本特点: (1) 语言简洁、紧凑,使用方便、灵活。 (2) 运算符丰富,表达式类型多样化。 (3) 数据结构类型丰富,具有现代化语言的各种数据结构。

(4) 具有结构化的控制语句。(5) 语法限制不太严格,程序设计自由度大。 (6) C语言允许访问物理地址,能进行位操作,能实现汇编 语言的大部分功能,能直接对硬件进行操作。

2013年8月6日3时59分

C语言程序设计与混合编程

第6章 C语言程序设计与混合编程 2. C语言基本语法概述(1) 限定词 可由字母、数字和下划线组成。限定词必须以字母或下划线开头。区分 大小写。 (2) 常量 常量包括整型常量(八进制、十进制、十六进制、长整型),字符常量, 实型常量(小数形式、指数形式),字符串常量,表达式,算术表达式(整型表 达式、实型表达式),逻辑表达式,字位表达式,强制类型转换表达式,逗号 表达式(顺序表达式),赋值表达式,条件表达式,

指针表达式。 (3) 数据定义 数据类型(int、short、long、unsigned、char、float、double、struct、 union、enum)用ty-pedef定义的类型名,存储类型(auto、static、register、 extem)变量的定义形式为: 存储类别 数据类型 变量列表; 例如:static float a,b,c;2013年8月6日3时59分 5

C语言程序设计与混合编程

第6章 C语言程序设计与混合编程

(4) 函数定义函数的定义形式为: 存储类别 函数体 (5) 语句 数据类型 函数名(形参表别)

语句包括表达式语句、函数调用语句、控制语句、复合语 句、空语句。其中控制语句包括if语句、while语句、for语句 和switch语句以及break语句、continue语句、return语句、 goto语句。(6) 预处理命令 预处理命令主要是指define和include语句。2013年8月6日3时59分 6

C语言程序设计与混合编程

第6章 C语言程序设计与混合编程 6.1.2 系统堆栈的使用 C系统的堆栈可以完成的主要功能如下: * 分配局部变量; * 传递函数参数; * 保存所调用函数的返回地址; * 保存临时结果。 运行堆栈的增长方向是从高地址到低地址, 即入栈则地址 减少,出栈则地址增加。堆栈的管理者是堆栈指针SP。堆栈的 容量由链接器(Linker)设定。 如:在链接命令文件(.cmd文件)中加入选项

-stack 0x1000则堆栈的容量被设为1000H个字。2013年8月6日3时59分 7

C语言程序设计与混合编程

第6章 C语言程序设计与混合编程 6.1.3 存储器模式及分配 1. 存储器模式 C54x DSP定点处理器有两种类型的存储器模式:程序存储器 和数据存储器。前者主要用于装载可执行代码,后者主要用于装 载外部变量、静态变量、系统堆栈以及一些中间运算结果。 C54x DSP的程序代码或数据以段的形式装载于存储器中。C 语言程序经C编译器编译后,生成七个可重定位的段,其中四个被 称为已初始化段,三个被称为未初始化段。 四个已初始化段分别是: * .text段 包括可执行代码、字符串和编译器产生的常量。 * .cinit段 包括初始化变量和常量表。 * .const段 包括字符串常量和以const关键字定义的常量。 * .switch段 为.const语句建立的表格。2013年8月6日3时59分 8

C语言程序设计与混合编程

第6章 C语言程序设计与混合编程 三个未初始化段分别是: * .bss段 保留全局和静态变量空间。在程序开始运行时,C的 引导(boot)程序将数据从.cinit段拷贝到.bss段。 * .stack段 为C的系统堆栈分配存储空间,用于变量的传递。 * .sysmem段 为动态存储器函数malloc、calloc、realloc分配存 储器空间。若C程序未用到此类函数,则C编译器不产生该段。

在编写链接命令文件(.cmd文件)时, .text、.cinit、.switch段通 常可以链接到系统的ROM或者RAM中去,但是必须放在程序段 (page0);.const段通常可以链接到系统的ROM或者RAM中去, 但是必须放在数据段(pagel);而.bss、.stack和.sysmem段必

须链 接到系统的RAM中去,并且必须放在数据段(pagel)。由实验程 序所建的某工程的链接命令文件(.cmd文件),如例6.1所示。2013年8月6日3时59分 9

C语言程序设计与混合编程

第6章 C语言程序设计与混合编程

【例6.1】某工程的链接命令文件(.cmd文件)MEMORY { PAGE 0 : HPIRAM: origin = 0x100, length = 0x200 /* TMS320C54x DSP存储器分配 */

PROG:PAGE 1 : DARAM1:

origin = 0x2000,

length = 0x1000

origin = 0x03000, length = 0x1000

PAGE 2 :FLASHRAM: origin = 0x8000, length = 0x7fff }2013年8月6日3时59分 10

C语言程序设计与混合编程

第6章 C语言程序设计与混合编程SECTIONS { /* 由C 定义 */ .vectors : load = PROG page 0 /*中断向量表*/ .text : load = PROG page 0 /*可执行代码*/ .cinit : load = PROG page 0 /*初始化变量和常数表*/ .switch : load = PROG page 0 /*为.constant语句建立的表格*/ .stack : load = DARAM1 page 1 /*C 系统堆栈*/ .const : load = DARAM1 page 1 /*字符串常量和以const关键字定义的常量*/ .bss : load = DARAM1 page 1 /*全局和静态变量空间*/ .dbuffer1024 : {} > DARAM1 page 1, align (1024) .coeffs1024 : {} > DARAM1 page 1, align (1024) .hpibuffer : load = HPIRAM page 0 /*由汇编定义*/ .data : >DARAM1 page 1 /*汇编定义的数据段*/ }2013年8月6日3时59分 11

C语言程序设计与混合编程

第6章 C语言程序设计与混合编程 2.存储器分配 C编译器提供的运行支 …… 此处隐藏:3652字,全部文档内容请下载后查看。喜欢就下载吧 ……

第6章 C语言程序设计与混合编程.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/267745.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)