微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > DSP学习交流 > 关于BF561 uClinux下使用B核的问题

关于BF561 uClinux下使用B核的问题

时间:10-02 整理:3721RD 点击:

使用bf561的开发板,在板子上移植了uClinux系统,但是uClinux系统只用了bf561的一个A核,现在我想使用另外一个B核,在官网上找到的编译另外一个B核心的应用程序命令是:

1.bfin-elf-gcc –mcpu=bf561-0.3 –mmulticore –mcoreb –c test_c.c –o test_c.o

2.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

#include

#include

#include

#define BUF_SIZE 1024

#define MYKEY 25

int main()

{

int shmid;

char *shmptr;

if((shmid = shmget(MYKEY,BUF_SIZE,IPC_CREAT))==-1)

{

     printf("shmget error!\n");

     exit(1);

}

if((shmptr = shmat(shmid,0,0))==(void*)-1)

{

     printf("shmat error!\n");

     exit(1);

}

while(1)

{  

     printf("string:%s\n",shmptr);

     sleep(3);   

}

exit(0);

}

我的问题如下:

1.  请问一下上述的问题是怎么回事,是编译工具的问题还是我代码的问题呢?

2.  或者是另外一个B核心的应用程序代码是不能含有linux系统的头文件的?

3.  我可不可以用bfin-elf-gcc这个命令编译B核应用程序,在B核上运行,然后和A核上的uClinux系统上运行的别的程序之间采用共享内存方式进行数据交换呢?


我的想法是用共享内存的方式在A核的应用程序和B核的应用程序之间传递数据

我的想法是用共享内存方式在A核的应用程序和B核的应用程序之间传递数据

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top