#include #define TRUE 1
#define pi 3.
int y[500],i;
float M;
void main()
{
puts("amplitude modulation sinewave example started.\n");
M = 50;
for(i = 0; i < 500; i++)
y[i] = 0;
while(TRUE)
{
for(i = 0; i < 500; i++)
y[i] = (int)((1 + M / 100 * sin(i * 2 * pi * 20 / 4000)) * sin(i * 2 * pi * 200 / 4000) * 16384);
puts("program end");
}
}
2.sin_am_v.asm (reset vector file)
.title "sin_am_v.asm"
.sect ".vectors"
.ref _c_int00
RESET:
B _c_int00
.end
3. sin_am.cmd
sin_am.obj
sin_am_v.obj
-m sin_am.map
-o sin_am.out
MEMORY
{
PAGE 0:
EPROG: origin = 0x1400, len = 0x7c00
VECT: origin = 0xff80, len = 0x80
PAGE 1:
USERREGS: origin = 0x60, len = 0x1c
IDATA: origin = 0x80, len = 0x3000
}
SECTIONS
{
.vectors: >VECT PAGE 0
.text: >EPROG PAGE 0
.cinit: >EPROG PAGE 0
.bss: >IDATA PAGE 1
.const: >IDATA PAGE 1
.switch: >IDATA PAGE 1
.system: >IDATA PAGE 1
.stack: >IDATA PAGE 1
}
"*.cmd"文件说明:
链接命令文件是实现对段的存储空间位置的定位,C语言程序中常用已初始化和未初始化段如下:
已初始化段包括:
.init 存放C程序中的变量的初值和常量,放在ROM和RAM中均可,一般属于PAGE 0
.const 存放C程序中的字符常量、浮点常量和用const声明的常量,放在ROM和RAM中均可,一般属于PAGE 1
.text 存放C程序代码,放在ROM和RAM中均可,一般属于PAGE 0
.switch 存放C程序中的语句的跳针表,放在ROM和RAM中均可,一般属于PAGE 0
未初始化段包括:
.bss 为C程序中的全局和静态变量保留存储空间,一般存放于RAM中,属于PAGE 1
.stack 为C程序系统堆栈保留存储空间,用于保存返回地址、函数间的参数传递、存储局部变量和保存中间结果,一般存放于RAM中,属于PAGE 1
.sysmem 用于C程序中malloc、calloc和realloc函数动态分配存储空间,一般存放于RAM中,属于PAGE 1
4.vary_M.gel
menuitem "Myfunctions"
slider vary_M(0, 100, 10, 1, Amount_of_modulation)
{
M = Amount_of_modulation;
}
该文件用于调试的时候可随意改变变量M的值,该文件通过file->load GEL File添加到工程中,调试的时候可选择GEL->My Functions->vary_M来打开vary_M滑动条组件。
5.rts.lib
此为C语言的标准支持库,添加路径\ti\c5400\cgtools\lib\rts.lib