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

 
 
> Шаманить с указателями, или union
toweroff
сообщение Oct 17 2012, 18:48
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Попросил убрать из "Программирования"



есть две области в ARM968E-S
в первой висит 16-битный супресс USB, во второй - NOR Flash

Читается/пишется в первую область только по/из фиксированным адресам
Во вторую - и так, и с инкрементом

оптимизация компилятора в Time и O3

Шины. 1-я с супрессом - 16бит, 2-я - 32 бит

Что-то фигню наблюдаю

Первая область объявлена как
Код
#define        FX2_FIFO2            (*(volatile unsigned int *)(FX2_BASE_ADDR + (0x00UL<<2)))
#define        FX2_FIFO4            (*(volatile unsigned int *)(FX2_BASE_ADDR + (0x02UL<<2)))


вторая - также через volatile, но в своем диапазоне

Доступ к памяти осцилл показывает и, судя по тестам, точно как и надо

А вот данные - не пойми чего
Для пересылки и сокращения доступа к той и другой области памяти попробовал сделать union с тремя полями - U16, U16 и U32
Например, чтение из первой области - в две U16 подряд, потом из U32 - в другую область запись

Шаманство sm.gif Не работает
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
toweroff
сообщение Oct 19 2012, 18:32
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Чисто практический вопрос по C (может, в нем дело?)

В первой функции есть обращение к памяти, где необходимо обращение каждый раз, когда используется по тому же адресу, генерить сигналя внешнего доступа (/OE, /CS, /WR)
Указатель объявляю как
Код
volatile unsigned int *mem;

во второй функции может приниматься любой указатель (как правило, тот же mem, но и буфер во внутренней пямяти, которые не-volatile)
оттуда осуществляется доступ по к этому указателю, так и к другой внешней памяти строго по фиксированным адресам, но память unsigned short

Чудес не бывает и Дед Мороз тоже не скоро придет
Девайс то работает, то нет

Как правильно компилятору объявить функции (точнее - типы параметров)?
Хотя LDR присутствуют после компиляции, но вот с глюками отладчика не могу выяснить где неполадки с указателями
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 29th July 2025 - 20:56
Рейтинг@Mail.ru


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