Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Microblaze Linux FSL есть сложны вопрос
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
DTMF
На microblaze поставил linux
К FSL прикрутил свой модуль
Можно ли и как испольсовать модуль на си под линухом.

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

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

microblaze_bread_datafsl(val, id)
microblaze_bwrite_datafsl(val, id)
LMT
Указанные microblaze_bxxx вроде же макросы. Посмотрите их определение в хэдерах EDK-шной инсталляции (mb_interface.h) и перенесите в свою программу под линуксом. Сработать должно: и там, и там GNU C.
syoma
У меня 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 писать. А там такого не было.
В итоге она не заработала и я на нее плюнул.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.