реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Microblaze Linux FSL есть сложны вопрос
DTMF
сообщение Nov 2 2007, 09:28
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 23-05-07
Пользователь №: 27 914



На microblaze поставил linux
К FSL прикрутил свой модуль
Можно ли и как испольсовать модуль на си под линухом.

не под линухом модуль использовал так:

// Blocking Data Read and Write to Local Link no. id

microblaze_bread_datafsl(val, id)
microblaze_bwrite_datafsl(val, id)
Go to the top of the page
 
+Quote Post
LMT
сообщение Nov 2 2007, 12:10
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 54
Регистрация: 22-02-07
Пользователь №: 25 599



Указанные microblaze_bxxx вроде же макросы. Посмотрите их определение в хэдерах EDK-шной инсталляции (mb_interface.h) и перенесите в свою программу под линуксом. Сработать должно: и там, и там GNU C.

Сообщение отредактировал LMT - Nov 2 2007, 12:11
Go to the top of the page
 
+Quote Post
syoma
сообщение Nov 10 2007, 18:23
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



У меня mb_interfacовские макросы под Linuxom отказались компилироваться. И насколько я знаю более рекомендуется nonblocking чтение и запись.
А вот такие макорсы генерит System Generator:
Код
#define MB_NBWRITE_CNTL_WITH_STATUS(val,status) \
  asm volatile ("ncput %1, rfsl<WRITESLOTID>\nmfs %0,rmsr" : "=d" (status) : "d" (val))
#define MB_NBWRITE_DATA_WITH_STATUS(val,status) \
  asm volatile ("nput %1, rfsl<WRITESLOTID>\nmfs %0,rmsr" : "=d" (status) : "d" (val))
#define MB_NBREAD_DATA_WITH_STATUS(val,status) \
  asm volatile ("nget %0, rfsl<READSLOTID>\nmfs %1,rmsr" : "=d" (val), "=d" (status))


status возвращает удачно или неудачно выполнилась команда.
И все это 100% работает под Linuxom по крайней мере в версии 2.4.

Но вот товарищ John Williams так не рекомендует делать, если доступ к FSL идет из разных одновременно выполняющихся приложений. Поэтому он забэбехал библиотеку с очередями и еще с чем-то.
Вроде бы хорошо в том, что она создает устройстваб в которые можно писать как в файл и читать теми же командами. Но мне надо было CNTL писать. А там такого не было.
В итоге она не заработала и я на нее плюнул.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 18:02
Рейтинг@Mail.ru


Страница сгенерированна за 0.01345 секунд с 7
ELECTRONIX ©2004-2016