使用bf561的
开发板,在板子上移植了uClinux系统,但是uClinux系统只用了bf561的一个A核,现在我想使用另外一个B核,在官网上找到的编译另外一个B核心的应用程序命令是:1.bfin-elf-gcc –mcpu=bf561-0.3 –mmul
ticore –mcoreb –c test_c.c –o test_c.o2.bfin-elf-gcc –mcpu=bf561-0.3 –mmulticore –mcoreb test_c.o –o test_c在编译我写的程序时,在Ubuntu 10.10下用gcc命令编译通过,有警告。但是执行上述第一步命令时就报错。错误如下:TestRead.c:3:20: 错误:sys/ipc.h:没有那个文件或目录TestRead.c:4:20: 错误:sys/shm.h:没有那个文件或目录TestRead.c: 在函数‘main’中:TestRead.c:13: 错误:‘IPC_CREAT’未声明(在此函数内第一次使用)TestRead.c:13: 错误:(即使在一个函数内多次出现,每个未声明的标识符在其TestRead.c:13: 错误:所在的函数内也只报告一次。)TestRead.c:16: 警告:隐式声明与内建函数‘exit’不兼容TestRead.c:19: 警告:赋值时将整数赋给指针,未作类型转换TestRead.c:22: 警告:隐式声明与内建函数‘exit’不兼容TestRead.c:31: 警告:隐式声明与内建函数‘exit’不兼容 我的程序
TestRead.c代码如下: #include<stdio.h>#include<sys/types.h>#include<sys/ipc.h>#include<sys/shm.h> #define BUF_SIZE 1024#define MYKEY 25int main(){int shmid;char *shmptr;if((shmid = shmget(MYKEY,BUF_SIZE,IPC_CREAT))==-1){ printf("shmget error!
"); exit(1);}if((shmptr = shmat(shmid,0,0))==(void*)-1){ printf("shmat error!
"); exit(1);}while(1){ printf("string:%s
",shmptr); sleep(3); }exit(0); } 我的问题如下:
1. 请问一下上述的问题是怎么回事,是编译工具的问题还是我代码的问题呢?
2. 或者是另外一个B核心的应用程序代码是不能含有linux系统的头文件的?
3. 我可不可以用bfin-elf-gcc这个命令编译B核应用程序,在B核上运行,然后和A核上的uClinux系统上运行的别的程序之间采用共享内存方式进行数据交换呢?
一周热门 更多>