Из последнего: отработан модуль, который при подключении к НИОС позволяет работать в флэш-памятью EPCS как с обычной областью ОЗУ и не требует дополнительных интерфейсов.
Пример кода использования модуля (для НИОСа):
Код
typedef struct my_struct
{
alt_u32 s_32;
alt_u8 s_m_3[3];
alt_u16 s_16;
} my_struct;
int main()
{
my_struct *ms;
ms = (my_struct*)alt_remap_uncached((void*)(EPCS_CONTROLLER_0_BASE),sizeof(my_struct));
// сброс рабочего сектора флэшки перед записью
ms->s_32 = 0xABCDEF55; // Clear this sector
printf("Clear end\n");
ms->s_16 = 0xabcd;
ms->s_m_3[0] = 0x1;
ms->s_m_3[1] = 0x2;
ms->s_m_3[2] = 0x3;
ms->s_32 = 0xdeadbeaf;
printf("ms->s_32 = 0x%lx\n", ms->s_32);
printf("ms->s_16 = 0x%x\n", ms->s_16);
printf("ms->s_m_3[0] = 0x%x\n", ms->s_m_3[0]);
printf("ms->s_m_3[1] = 0x%x\n", ms->s_m_3[1]);
printf("ms->s_m_3[2] = 0x%x\n", ms->s_m_3[2]);
Таким образом нет необходимости использования Альтеровских драйверов.
Большой плюс модуля - это бО'льшая скорость отработки транзакций с флэш-памятью по сравнению с драйверами Альтеры.
При необходимости можно проработать применение модуля и к другим типам флэш-памяти.
З.Ы.: на данный момент загруженность не большая. Могу выполнять новые заказы.
Сообщение отредактировал billidean - Nov 9 2013, 19:45