文档介绍:volume1文件
1.
extern void load(unsigned int loadValue);
static int processing(int *input, int *output);
extern:外部函数,可以被其他文件调用。
static:内部函数,只能被本文件中其他函数调用。
#ifdef FILEIO
puts("begin processing") /* deliberate syntax error */
#endif
此程序也可以修改为:
#ifdnef FILEIO
puts("begin processing"); /* deliberate syntax error */
#endif
注意他们间的接口。
;C-callable interface to assembly language utility functions for the
; volume example.
.mmregs
.global _load
可能出现的错误,如下:
由于“start address:0x0030e000,超出的数据存储器的地址0xffff的范围,所以可能使系统死机。
stack和heap 的使用,必须在程序使用的时候指定值,否则出现如下问题:
对工程作如下修改就可以:
设置他们的值,并指定大小0x400即可。
产生测试数据工程中,需要注意以下问题:
其中:.cinit,.pinit段没定义原因是:
进入到“帮助”可以看到其中“autoinit mode”选项的解释:
由上可知,连接c程序时,必须选择“run-time autoinitialization(-c)修改如下:
(),。_c_int00()完成如初始化堆栈指针和页指针以及全局变量等操作。最后调用main(),执行用户功能。
/*****************************************************************************/
/* */
/* - FILE FOR LINKING C PROGRAMS */
/* */
/* Usage: lnk500 <obj files...> -o <out file> -m <map file> */
/* cl500 <src files...> -z -o <out file> -m <map file> */
/* */
/* Description: This file is a mand file that can be used */
/* for linking programs built with the C54x piler. */
/* This file has been designed to work for */
/* 548 C54x device. */
/* Use it as a guideline; you may