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

 
 
> запись в EPCS из ниоса, через epcs_flash_controller
torik
сообщение Aug 8 2011, 12:30
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 113
Регистрация: 1-11-05
Пользователь №: 10 359



Надо иногда записывать несколько байт в EPCS.

В EPCS64 128 секторов. Хочу последний сектор для данных отвести.

Пишу код:

Код
#include "epcs_commands.h"


unsigned char * epcs_dst;
unsigned int epcs_buff[4];
epcs_dst = &epcs_buff[0];
fprintf(stdout, "\nepcs id = %x", epcs_read_device_id(EPCS_FLASH_CONTROLLER_BASE + EPCS_FLASH_CONTROLLER_REGISTER_OFFSET));
epcs_read_buffer(EPCS_FLASH_CONTROLLER_BASE, 65536*127, epcs_dst, 16);
    fprintf(stdout, "\n1 = %x", epcs_buff[0]);


На функции чтения тупо виснет.

Что интересно, если написать:

Код
fprintf(stdout, "\nepcs id = %x", epcs_read_device_id(EPCS_FLASH_CONTROLLER_BASE));


Тоже виснет.




Где примерчик можно посмотреть? Чё ему не нравится? Всякие галки small в bsp сняты...
















Попробовал везде использовать EPCS_FLASH_CONTROLLER_BASE + EPCS_FLASH_CONTROLLER_REGISTER_OFFSET
Зависать перестало.
Теперь добавляем запись:
Код
epcs_write_enable(EPCS_FLASH_CONTROLLER_BASE + EPCS_FLASH_CONTROLLER_REGISTER_OFFSET);
epcs_sector_erase(EPCS_FLASH_CONTROLLER_BASE + EPCS_FLASH_CONTROLLER_REGISTER_OFFSET, 127);
res = epcs_write_buffer(EPCS_FLASH_CONTROLLER_BASE + EPCS_FLASH_CONTROLLER_REGISTER_OFFSET, 65536*127, epcs_src, 16);

После сброса питания, выяснилось, что прошивка накрылась. Куда-то не туда стер и записал...


--------------------
Быть. torizin-liteha@yandex.ru
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
torik
сообщение Aug 9 2011, 06:52
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 113
Регистрация: 1-11-05
Пользователь №: 10 359



Цитата
а вариант, что я выше предлагал чем не нравится? памяти, кстати, меньше будет жрать. и с reduced device drivers будет работать

Попробовал. Что-то не записывает нифига то что надо:
Код
epcs_sector_erase(EPCS_FLASH_CONTROLLER_BASE+EPCS_FLASH_CONTROLLER_REGISTER_OFFSET, 65536*126);
epcs_write_buffer(    EPCS_FLASH_CONTROLLER_BASE+EPCS_FLASH_CONTROLLER_REGISTER_OFFSET, 65536*126,
        (void*)epcs_buff, 16);

epcs_read_buffer(EPCS_FLASH_CONTROLLER_BASE+EPCS_FLASH_CONTROLLER_REGISTER_OFFSET, 65536*126, (void*)epcs_buff, 16);

Опять небось какой-нибудь флеш_инит нужно делать или еще чего забыл?





--------------------
Быть. torizin-liteha@yandex.ru
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Aug 9 2011, 08:57
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(torik @ Aug 9 2011, 13:52) *
Опять небось какой-нибудь флеш_инит нужно делать или еще чего забыл?

скорее epcs_write_enable.
вот только что проверил:
CODE

unsigned char e_buf[16];
epcs_write_enable(EPCS_FLASH_CONTROLLER_0_BASE+EPCS_FLASH_CONTROLLER_0_REGISTER_
OFFSET);
epcs_sector_erase(EPCS_FLASH_CONTROLLER_0_BASE+EPCS_FLASH_CONTROLLER_0_REGISTER_
OFFSET,EPCS_SET_OFFS);
epcs_read_buffer(EPCS_FLASH_CONTROLLER_0_BASE+EPCS_FLASH_CONTROLLER_0_REGISTER_O
FFSET,EPCS_SET_OFFS,e_buf,16);
for(t=0;t<16;t++)
alt_printf("e_buf[%x]=%x\n",t,e_buf[t]);
for(t=0;t<16;t++)
e_buf[t] = t;
epcs_write_buffer(EPCS_FLASH_CONTROLLER_0_BASE+EPCS_FLASH_CONTROLLER_0_REGISTER_
OFFSET,EPCS_SET_OFFS,e_buf,16);
for(t=0;t<16;t++)
alt_printf("e_buf[%x]=%x\n",t,e_buf[t]);
for(t=0;t<16;t++)
e_buf[t]=0;
for(t=0;t<16;t++)
alt_printf("e_buf[%x]=%x\n",t,e_buf[t]);
epcs_read_buffer(EPCS_FLASH_CONTROLLER_0_BASE+EPCS_FLASH_CONTROLLER_0_REGISTER_O
FFSET,EPCS_SET_OFFS,e_buf,16);
for(t=0;t<16;t++)
alt_printf("e_buf[%x]=%x\n",t,e_buf[t]);

выхлоп:
CODE
e_buf[0]=ff
e_buf[1]=ff
e_buf[2]=ff
e_buf[3]=ff
e_buf[4]=ff
e_buf[5]=ff
e_buf[6]=ff
e_buf[7]=ff
e_buf[8]=ff
e_buf[9]=ff
e_buf[a]=ff
e_buf[b]=ff
e_buf[c]=ff
e_buf[d]=ff
e_buf[e]=ff
e_buf[f]=ff
e_buf[0]=0
e_buf[1]=1
e_buf[2]=2
e_buf[3]=3
e_buf[4]=4
e_buf[5]=5
e_buf[6]=6
e_buf[7]=7
e_buf[8]=8
e_buf[9]=9
e_buf[a]=a
e_buf[b]=b
e_buf[c]=c
e_buf[d]=d
e_buf[e]=e
e_buf[f]=f
e_buf[0]=0
e_buf[1]=0
e_buf[2]=0
e_buf[3]=0
e_buf[4]=0
e_buf[5]=0
e_buf[6]=0
e_buf[7]=0
e_buf[8]=0
e_buf[9]=0
e_buf[a]=0
e_buf[b]=0
e_buf[c]=0
e_buf[d]=0
e_buf[e]=0
e_buf[f]=0
e_buf[0]=0
e_buf[1]=1
e_buf[2]=2
e_buf[3]=3
e_buf[4]=4
e_buf[5]=5
e_buf[6]=6
e_buf[7]=7
e_buf[8]=8
e_buf[9]=9
e_buf[a]=a
e_buf[b]=b
e_buf[c]=c
e_buf[d]=d
e_buf[e]=e
e_buf[f]=f
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- torik   запись в EPCS из ниоса   Aug 8 2011, 12:30
- - Stewart Little   А девайс открывать Вы не забываете?   Aug 8 2011, 12:36
- - torik   А надо ли? Вот функции "epcs_commands.h...   Aug 8 2011, 13:37
|- - Stewart Little   Какое значение возвращается из alt_flash_open_dev?...   Aug 8 2011, 14:36
|- - Stewart Little   upd: Цитата(torik @ Aug 8 2011, 17:37) А ...   Aug 8 2011, 15:10
|- - sergtsa   Цитата(Stewart Little @ Aug 8 2011, 19:10...   Aug 8 2011, 15:20
- - sergtsa   и не забывайте , в EPCS _xxx ограниченное число за...   Aug 8 2011, 15:00
- - vadimuzzz   примеры чтения/записи с использованием epcs_comman...   Aug 8 2011, 15:14
- - torik   ЦитатаВы уж определитесь, с чем хотите работать - ...   Aug 9 2011, 04:50
|- - vadimuzzz   Цитата(torik @ Aug 9 2011, 11:50) Взял пр...   Aug 9 2011, 05:37
|- - Stewart Little   Цитата(torik @ Aug 9 2011, 08:50) Не поня...   Aug 9 2011, 08:13
- - torik   Кода вариант, что я выше предлагал чем не нравится...   Aug 9 2011, 06:03
|- - vadimuzzz   Цитата(torik @ Aug 9 2011, 13:03) Кодalt_...   Aug 9 2011, 06:06
- - torik   Цитатаскорее epcs_write_enable Точно, вот только з...   Aug 9 2011, 09:53
- - vadimuzzz   я, откровенно говоря, вообще не понимаю, почему вы...   Aug 9 2011, 11:46
- - torik   Причем тут флешка и форматный вывод. Форматный выв...   Aug 9 2011, 11:51
|- - Stewart Little   Цитата(torik @ Aug 9 2011, 15:51) Причем ...   Aug 9 2011, 11:57
|- - vadimuzzz   Цитата(torik @ Aug 9 2011, 18:51) И к фле...   Aug 9 2011, 12:12
- - torik   ЦитатаНу а Вы постарайтесь писать более удобочитае...   Aug 9 2011, 12:47
- - Reanimator++   Код#include "flash.h" #include "sys/al...   Aug 9 2011, 16:58
|- - wpost   описание структуры Кодstruct EPCS_STRUCT { char *...   Aug 10 2011, 08:16
- - torik   Читабельно. Спасибо. Перед записью, кстати, нет н...   Aug 12 2011, 11:24


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

 


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


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