есть две области в 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)))
#define FX2_FIFO4 (*(volatile unsigned int *)(FX2_BASE_ADDR + (0x02UL<<2)))
вторая - также через volatile, но в своем диапазоне
Доступ к памяти осцилл показывает и, судя по тестам, точно как и надо
А вот данные - не пойми чего
Для пересылки и сокращения доступа к той и другой области памяти попробовал сделать union с тремя полями - U16, U16 и U32
Например, чтение из первой области - в две U16 подряд, потом из U32 - в другую область запись
Шаманство
