Мы работаем над домашней работой по программированию CELL для колледжа, и их ответы на наши вопросы довольно медленны, хотя я могу получить более быстрые ответы здесь.
У меня есть код стороны PPU, который пытается открыть файл, переданный через char* argv[]
, однако это не работает, он не может сделать присвоение указателя, я получаю NULL.
Теперь моя первая идея состояла в том, что файл находится не в правильном каталоге, и я скопировал все возможные и логичные места, моя вторая идея заключается в том, что, возможно, PPU хочет этот указатель в своей области LS, но я не могу вывести если это ошибка или нет. Итак ...
У меня вопрос, что я делаю не так?
Я работаю с ячейкой Fedora 7 SDK с Eclipse в качестве IDE. Возможно, мой аргумент неверен, если он правильно получает имя файла.
Код по запросу:
images_t *read_bin_data(char *name)
{
FILE *file;
images_t *img;
uint32_t *buffer;
uint8_t buf;
unsigned long fileLen;
unsigned long i;
//Open file
file = (FILE*)malloc(sizeof(FILE));
file = fopen(name, "rb");
printf("[Debug]Opening file %s\n",name);
if (!file)
{
fprintf(stderr, "Unable to open file %s", name);
return NULL;
}
//.......
}
Основной запуск:
int main(int argc,char* argv[]) {
int i,img_width;
int modif_this[4] __attribute__ ((aligned(16))) = {1,2,3,4};
images_t *faces, *nonfaces;
spe_context_ptr_t ctxs[SPU_THREADS];
pthread_t threads[SPU_THREADS];
thread_arg_t arg[SPU_THREADS];
//intializare img_width
img_width = atoi(argv[1]);
printf("[Debug]Img size is %i\n",img_width);
faces = read_bin_data(argv[3]);
//.......
}
Спасибо за помощь.