求助:将c源程序分成两个后,系统就不正常

[复制链接]
1180|14
 楼主| hufangling 发表于 2016-11-5 10:53 | 显示全部楼层 |阅读模式
原99年做的tms320vc33系统,一直是一个c程序,显示计算均正常。现在因为要增加程序功能,想分工合作。第一步只是将原程序拆成了两个:1.c(主控程序)和2.c(函数),如果在1.c中使用include “2.c”语句,也均正常,但不用include “2.c”,直接将1.c和2.c加入project中形成1.obj和2.obj,再链接成.out,系统就无显示。使用的.cmd一直没改过,不知哪儿错了,请各位大侠指教。
51xlf 发表于 2016-11-5 16:55 | 显示全部楼层
程序不能运行还是显示错误?
51xlf 发表于 2016-11-5 16:59 | 显示全部楼层
你可以通过头文件进行引用。
zhangmangui 发表于 2016-11-5 22:44 | 显示全部楼层
.c里面调用头文件解决
zhangmangui 发表于 2016-11-5 22:44 | 显示全部楼层
tms320vc33  这片子还能买到吗
mcu5i51 发表于 2016-11-6 08:11 | 显示全部楼层
怎么全是包含C文件呀,一直在照着学校的东西来呀,应该改一下了
ddllxxrr 发表于 2016-11-6 10:03 | 显示全部楼层
第一个程序要用到第二个程序里的东东,就得包含第二个程序的头文件.h这是编译器要求的,不要问那么多为什么
ta1ent 发表于 2016-11-6 10:20 | 显示全部楼层
用头文件即可。
 楼主| hufangling 发表于 2016-11-7 09:58 | 显示全部楼层
就是改为头文件调用了系统就不显示了
文件一kz:
#include "func_kz.h"
#include "func_js_ext.h"
#include "func_tx_ext.h"
文件二js:
#include "func_kz_ext.h"
#include "func_js.h"
#include "func_tx_ext.h"
文件三tx
#include "func_kz_ext.h"
#include "func_js_ext.h"
#include "func_tx.h"
cmd中
MEMORY
{
   VECS:   org = 0x1000 ,len = 0x40
   
   EXT0:   org = 0x3000,len = 0x20000   /* EXTERNAL MEMORY org = 0x3000,len = 0x1d000 */
   EXT1:   org = 0x1100,len = 0x0100        /*1e00 org = 0x1100, len = 0x0100 */
   
   RAM0:   org = 0x809800,len = 0x400         /* RAM BLOCK 0 */
   RAM1:   org = 0x809c00,len = 0x400         /* RAM BLOCK 1 */  
   RAM2:   org = 0x800000,len = 0x4000   /* RAM BLOCK 2        */
   RAM3:   org = 0x804000,len = 0x4000   /* RAM BLOCK 3        */
}

/* SPECIFY THE SECTIONS ALLOCATION INTO MEMORY */

SECTIONS
{
   .asect:  > VECS      
   .text:   > EXT0  
   .cinit:  > RAM3  
   .const:  > EXT0   
   .data:   > EXT0   
   .stack:  > RAM0                 
   .sysmem: > RAM1  
   .bss:    > EXT0          
}
形成的map中
MEMORY CONFIGURATION

           name     origin    length      used    attributes    fill
         --------  --------  ---------  --------  ----------  --------
         VECS      00001000  000000040  00000000     RWIX      
         EXT1      00001100  000000100  00000000     RWIX      
         EXT0      00003000  000020000  0000cc21     RWIX      
         RAM2      00800000  000004000  00000000     RWIX      
         RAM3      00804000  000004000  00002270     RWIX      
         RAM0      00809800  000000400  00000400     RWIX      
         RAM1      00809c00  000000400  00000000     RWIX      


SECTION ALLOCATION MAP

output                                  attributes/
section   page    origin      length       input sections
--------  ----  ----------  ----------   ----------------
.asect     0    00001000    00000000     UNINITIALIZED
.text      0    00003000    0000a6f7     
.cinit     0    00804000    00002270     
.const     0    00003000    00000000     UNINITIALIZED
.data      0    0000d6f7    00000014     
.stack     0    00809800    00000400     UNINITIALIZED
.sysmem    0    00809c00    00000000     UNINITIALIZED
.bss       0    0000d70b    00002516     UNINITIALIZED
内存小模式,bss段未超过64K呀
xiaoyaozt 发表于 2016-11-7 22:24 | 显示全部楼层
程序是不是没有引用成功?
xiaoyaozt 发表于 2016-11-7 22:27 | 显示全部楼层
看看引用路径包含进去了。
isseed 发表于 2016-11-8 22:52 | 显示全部楼层
程序编译正确吗?
isseed 发表于 2016-11-8 22:53 | 显示全部楼层
正确不是还有头文件吗?
pmp 发表于 2016-11-10 21:26 | 显示全部楼层
上传一下你的代码和工程看看。
pmp 发表于 2016-11-10 21:28 | 显示全部楼层
include的目录包括在编译器了吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部