DSP之CCS的C语言程序

1、建立新的工程文件

建立 CProgram.pjt

2、新建c语言程序文档

main()
{
			int x,y,z;
			x=1; y=2;
			while ( 1 )
				{
						z=x+y;
				}
}

保存源程序为 CProgram.c,在工程路径下。

3、连接命令文件

建立空的源程序窗口,输入连接命令文件内容:

-l  rts64plus.lib
-l  evmdm6437bsl.lib
-stack 0x00001000       /*  k Stack  e Size  */
-heap 0x00001000      /*  p Heap  e Size  */
MEMORY
{ 
		L2RAM: o o o o =  0x10800000 l =  0x00020000
		DDR2: o o o o =  0x80000000 l = 0x10000000
 }
SECTIONS
{
				.bss >  L2RAM
				.cinit >  L2RAM
				.cio >  L2RAM
				.const >  L2RAM
				.data > L2RAM
				.far >  L2RAM
				.stack > L2RAM
				.switch > L2RAM
				.sysmem >  L2RAM
				.text >  L2RAM
				.ddr2 >  DDR2
} 

保存为CProgram.cmd,在工程路径下。 将上述编译的源程序加入工程 CProgram.pjt。

4、编辑

⑴ 单击菜单“Project ”、 “Rebuild All ” 。
⑵ 执 行 File->Load Program , 在 随 后 打 开 的 对 话 框 中 选 择 刚 刚 建 立 的CProgram.out 文件。完成后,系统自动打开一个反汇编窗口“Disassembly ” ,并在其中指示程序的入口地址为“_c_int00 ” 。

5.打开观察窗口

开启 CPU 寄存器观察窗口:单击菜单 View->Registers->Core Registers。

6.观察程序运行结果

⑴ 选择菜单中 Debug->Go Main , CCS 自动打开 CProgram.c,程序会停在用户主程序入口 main 上,这从反汇编窗口和 CProgram.c 窗口中的指示箭头位置可以看出。
⑵ 在内存观察窗口中观察变量的值:
选择“View”菜单中“Memory…”项,在“Memroy Window Options”窗口中的“Adress”项中输入&x,单击“OK” 完成设置; “Memory”窗口中 x 的当前取值显示在第 1 个地址的后。
⑶ 将变量 x、y、z 分别加入观察窗口:
在源程序中双击变量名,再单击鼠标右键,选择“Add to Watch Window ” 。这时, 这3 个变量还未作初始化。
⑷ 单步运行 2 次,在观察窗中观察到变量 x 、 y 被赋值。变化的值被显示成红色。同时在
“Memory”窗口中也能观察到 x 和 y 值的改变。
⑸ 再单步运行,可观察到 z 的值被计算出来。双击观察窗口中变量 x、y 在“Value”栏
中的取值并修改成其他取值,单步运行后观察结果。
⑹ 双击观察窗口中变量 x、y 在“Value”栏中的取值,并修改成 0;选择菜单 Debug->Restart,返回程序起点。
⑺ 重新单步运行程序,观察在 CPU 寄存器窗口中,各寄存器使用情况,观察哪个寄存器参与了运算。

7.内存映像文件

⑴ 选择菜单 Project->Build Options…,启动“Build Options”工程设置对话框。
⑵ 单击“Linker”属性页,在“Map Filename”项中观察生成的 map 文件名和路径。
⑶ 单击“取消”退出。

8.对照观察 map 文件和 cmd 文件的内容

⑴ 选择菜单 File->Open…,将找到CProgram\Debug 目录,将文件类型改为“Memory Map Files ” ,选择 CProgram.map 文件、打开。
⑵ 打开 CProgram.cmd 文件。
⑶ 程序的入口地址:map 文件中“ENTRY POINT SYMBOL”中说明了程序入口地址(_c_int00)。
⑷ 内存使用情况:
----map 文件中“MEMORY CONFIGURATION”标明了程序占用 L2RAM 的使用情况,共占用 0x148c 个存储单元。
----观察 map 文件中的“SECTION ALLOCATION MAP”段,可以看出 CProgram.obj的入口地址为 108012e0H,这也是 main 函数的入口地址。
----用户堆栈段从 10800000 开始,程序运行到 main 函数中后,变量 x、y、z 均开设在栈中。还能看出程序运行都需要调用 rts64plus.lib 中的哪些模块。

9.改变内存分配

修改 cmd 文件中的L2RAM: o = 0x10800000 l = 0x00020000改为L2RAM: o = 0x10800000 l = 0x00010000重新编译工程,观察 map 文件中有何变化。

10.退出 CCS。

  • 3
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值