Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопрос по сям
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > Программирование
axalay
help.gif Тока изучаю си...столкнулся с такой проблемой. Есть блочная память, общая как для процессора и плис. В определенную область этой памяти плиска по требованию процессора закидывает 256 байт тех или иных данных (при этом там есть и битовые, байтовые и 4-хбайтовые данные). Проц должен проанализировать эти данные. хочу использовать для этого структуры, битовые поля и обьединение (двух структур) чтобы далее в программе не задумываться по какому адресу лежит что и какой разрядности. Возможно ли это? И было бы неплохо подробненькие примерчики.... smile.gif Простые проги писать могу, но чето не переварил еще структуры-муктуры.... help.gif
Doka
и какое отношение эта тема имеет к HDL??
переношу в "программирование"
axalay
Есть общая для проца и плиса память (не память данных). Плис в определенный участок этой памяти по требованию проца записывает 256 байт той или иной информации (при этом данные есть и битовые и байтовые и двухбайтовые и далее). А проц должен проанализировать эти данные. Так как я тока учу си, то вопрос - хочу использовать структуры, обьединение двух структур (так как для тех или иных данных используется один и тот же участок памяти) и битовые поля. Все это хочу использовать для того чтоб далее при написании проги не задумываться ни о разрядности данных и о адресе где оно лежит. Возможно ли это? И еще вопрос - будет ли тут использоваться выравнивание? что мне очень бы не хотелось....и если да-то как мона обойтись без выравнивания данных?

Примерчики бы.... smile.gif да побольше!!! smile.gif А то чет в эти понятия никак не вникну.

help.gif

Че уже два раза удалилось мое сообщение???? Устал набирать...

Цитата(Doka @ May 17 2007, 11:39) *
и какое отношение эта тема имеет к HDL??
переношу в "программирование"


Если я не ошибаюсь, то форум называется: Verilog, VHDL, AHDL и др. Слово "и др"
по моему что то значит. Да и к тому же там куда вы меня перекинули-наврядли знают об архитектуре этого проца и особенностях данного компилятора си. Верните плиз эту тему обратно.

Да и за что снова влепили предупреждение??? По моему мой вопрос в тему в данной конфе. Я не хочу слушать ответы системных программистов, а хочу услышать ответы от тех ребят, которые реально программировали данный проц (который находится в плисе ксалинкса)
Doka
axalay

>> Че уже два раза удалилось мое сообщение???? Устал набирать...

правилами форума запрещено открытие двух и более тем одинакового содержания, с учётом того, что, как вы выразились "вопрос срочный", удивительно что вы не получили по подписке уведомления о том, что тема перенесена.


>> Если я не ошибаюсь, то форум называется: Verilog, VHDL, AHDL и др. Слово "и др"


....SystemVerilog, SystemC, ABEL, PLI, etc..


>> Да и за что снова влепили предупреждение???

см.выше.
с учётом того, что это уже ваше третье предупреждение за последние месяцы, поражает ваш стиль "переть напролом" twak.gif


>> Я не хочу слушать ответы системных программистов, а хочу услышать ответы от тех ребят, которые реально программировали данный проц (который находится в плисе ксалинкса)


т.е. именно в чипах Xilinx используется какой-то особенный IBM PowerPC ?

вопрос не имеет никакого отношения к языкам программирования ПЛИС,
поэтому тема переехала туда где обсуждают вопросы программирования. в т.ч.и на Си.
axalay
[quote name='Doka' date='May 17 2007, 16:32' post='251458']
axalay

с учётом того, что это уже ваше третье предупреждение за последние месяцы, поражает ваш стиль "переть напролом"

А вы предлагаете сидеть и ждать ветра в поле?
reddot
axalay, указал бы пишешь ли ты программулину под какую-то установленную ОС или напрямую так сказать в standalone.

Код
// BASEADDR контроллера блочной памяти в которой находится информация
// будем считать, что ваша структура данных записывается с нулевым смещенеим
unsigned int BRAM_BASEADDR

// если используется ОС, то первоначально необходимо отобразить блочную память в память процесса
// в разных системах эти механизмы отличаются
// но будем считать, что после отображения вы получили указатель на брам-память в вашем процессе
void *bram_mapped_baseaddr;

// объявляем требуемую структуру данных
// про юнионы и битфилды лучше отдельно почитать и разобраться как они работают
struct data {
  int a;
  int b;
};

// указываем расположение структуры в блочной памяти
struct data *datainbram = (struct data*)bram_mapped_baseaddr;

// телемаркет
int c = datainbram->a;
datainbram->b = c;

// опять же если используем ОС ресурсы задействованные в отображение необходимо освободить
axalay
Спасибо за ответ. Пишу я напрямую. С вышеназванными вопросами вроде разобрался-прога даже работает (удивительно smile.gif ). Что напрягает-то что постоянно новые вопросы появляются-обязательно пойду на курсы по С++ в бауманку. Кстати мож кто даст обьективную оценку этим курсам (4-хмесячные которые)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.