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

 
 
> хранение данных во флэш epcs4
Wic
сообщение Jul 1 2011, 09:49
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 183
Регистрация: 16-03-08
Из: Новосибирск
Пользователь №: 35 954



Говорят, что можно средствами NIOS, читать и писать данные во флэшку, с которой производится конфигурирование плис. Но уж очень доступная документация не позволяет легко понять как же это делать. Попробовал разобраться по исходникам, что идут в составе BSP, но со всеми струкутрами и функциями так и не понял как же это должно работать.
Цель стоит простая хранить там серийник устройства и несколько параметров. Можно ли такое сделать?
Чего почитать чтобы понять как же это заставить работать, или пример посмотреть на крайний случай


исходя из файлов заголовков инициализация проходит при помощи

Код
int alt_epcs_flash_init(alt_flash_epcs_dev* flash);

где
Код
struct alt_flash_epcs_dev
{
  alt_flash_dev dev;

  alt_u32 register_base;
  alt_u32 size_in_bytes;
  alt_u32 silicon_id;
  alt_u32 page_size;
};
// и тут же далее по ссылке  alt_flash_dev
struct alt_flash_dev
{
  alt_llist                 llist;
  const char*               name;
  alt_flash_open            open;
  alt_flash_close           close;
  alt_flash_write           write;
  alt_flash_read            read;
  alt_flash_get_flash_info  get_info;
  alt_flash_erase_block     erase_block;
  alt_flash_write_block     write_block;
  void*                     base_addr;
  int                       length;
  int                       number_of_regions;
  flash_region              region_info[ALT_MAX_NUMBER_OF_FLASH_REGIONS];
};

мой код
Код
//включаю файлы заголовков
#define ALT_USE_EPCS_FLASH
#include <altera_avalon_epcs_flash_controller.h>
alt_flash_epcs_dev mem;
int a;
//задаю название контролерра
mem.dev.name=EPCS_FLASH_CONTROLLER_0_NAME;
// пытаюсь инициализировать его
a = alt_epcs_flash_init(mem);
// и прочитать
ret_code = alt_epcs_flash_read(mem->dev, 0, data_array_name, 16);

А он мне в ответ
Цитата
hello_world_small.c:309: error: incompatible type for argument 1 of 'alt_epcs_flash_init'
hello_world_small.c:310: error: invalid type argument of '->'

при
Код
ret_code = alt_epcs_flash_read(mem.dev, 0, data_array_name, 16);

Цитата
hello_world_small.c:310: error: incompatible type for argument 1 of 'alt_epcs_flash_read'
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Wic
сообщение Oct 26 2011, 04:39
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 183
Регистрация: 16-03-08
Из: Новосибирск
Пользователь №: 35 954



После того как делаю epcs_sector_erase, проходит запись.
Обязательно ли чистить сектор перед записью?
Посмотрел исходник "epcs_commands.c", немного вызывает сомнения того, что при записи программа не ждет окончания записи команды. Даже есть интересный комментарий для комманды чтения.
CODE
alt_32 epcs_read_buffer(alt_u32 base, int offset, alt_u8 *dest_addr, int length)
{
alt_u8 read_command[4];

read_command[0] = epcs_read;
read_command[1] = (offset >> 16) & 0xFF;
read_command[2] = (offset >> 8) & 0xFF;
read_command[3] = offset & 0xFF;

#if 0
/* If a write is in progress, fail. */
if (epcs_test_wip(base))
return 0;
#endif
/* I don't know why this is necessary, since I call await-wip after
* all writing commands.
*/
epcs_await_wip_released(base);

alt_avalon_spi_command(
base,
0,
sizeof(read_command) / sizeof(*read_command),
read_command,
length,
(alt_u8*)dest_addr,
0
);

return length;
}


А вот для записи нет строчки, после отправки команды на запись
Код
  epcs_await_wip_released(base);


Буду пробовать править исходники.

UPD попытка править исходники ничего не дала. Иногда пишет без epcs_sector_erase. Но как то не хочется чистить сектор для небольшой правки. Но вот понять, что ей нужно чтобы писать без очистки пока не могу.

Сообщение отредактировал Wic - Oct 26 2011, 05:15
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Wic   хранение данных во флэш epcs4   Jul 1 2011, 09:49
- - Stewart Little   Кода-то использовал такую тестилку для доступа в E...   Jul 1 2011, 11:55
|- - Wic   Цитата(Stewart Little @ Jul 1 2011, 18:55...   Jul 4 2011, 04:02
- - Wic   После прочтения темы Решил не пользоваться HAL, а ...   Oct 25 2011, 08:51
|- - FLTI   Цитата(Wic @ Oct 25 2011, 11:51) После пр...   Apr 23 2015, 08:40
|- - _Anatoliy   Цитата(FLTI @ Apr 23 2015, 10:40) Возможн...   Apr 23 2015, 08:59
- - vadimuzzz   вот пример: CODE ... unsigned char e_buf[16] = {0,...   Oct 25 2011, 09:17
- - Wic   Задал #define EPCS_SET_OFFS 0 Вот результат. И оди...   Oct 25 2011, 09:45
|- - vadimuzzz   Цитата(Wic @ Oct 25 2011, 16:45) Вот резу...   Oct 25 2011, 11:28
|- - vadimuzzz   Цитата(Wic @ Oct 26 2011, 11:39) Но как т...   Oct 26 2011, 06:38
- - Wic   Спасибо за объяснение =) Теперь просто храню масс...   Oct 26 2011, 09:50
|- - AlexMad   Цитата(Wic @ Oct 26 2011, 13:50) Спасибо ...   Feb 24 2014, 11:29
|- - vadimuzzz   Цитата(AlexMad @ Feb 24 2014, 18:29) А ка...   Feb 25 2014, 10:21
|- - AlexMad   Цитата(vadimuzzz @ Feb 25 2014, 14:21) ep...   Feb 25 2014, 14:23
|- - dim99   Внесу свои пять копеек по поводу хранения данных в...   Aug 18 2014, 11:43
|- - Kuzmi4   Цитата(dim99 @ Aug 18 2014, 13:43) ... Ед...   Aug 18 2014, 16:57
- - stu   В описании EPCS написано, что EPCS4 с 0,15 um тех....   Dec 3 2012, 13:57
- - FLTI   Тогда в чём в итоге была проблема? Я сейчас похож...   Apr 23 2015, 18:10
- - vadimuzzz   ищите в: ip/altera/sopc_builder_ip/ epcs_commands...   Apr 24 2015, 01:54
- - FLTI   Если использовать драйвер epcs_commands.h, то надо...   Apr 24 2015, 06:19
|- - vadimuzzz   Цитата(FLTI @ Apr 24 2015, 12:19) Если ис...   Apr 24 2015, 06:47
- - FLTI   По мотивам кодов в данной теме составил такой код:...   Apr 24 2015, 13:08
|- - Stewart Little   Цитата(FLTI @ Apr 24 2015, 16:08) Почему ...   Apr 24 2015, 17:33
- - FLTI   Мне нужно исходный .jic файл, записанный в EPCS по...   Apr 24 2015, 17:36


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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 16:53
Рейтинг@Mail.ru


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