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

 
 
 
Reply to this topicStart new topic
> Флеш память и еще одна проблемка!, SAM3S4B, IAR
sinh
сообщение Jan 24 2013, 14:37
Сообщение #1





Группа: Участник
Сообщений: 11
Регистрация: 15-11-12
Пользователь №: 74 397



Привет всем! Имеется в налии МК (SAM3S4B), IAR и JTAG.
Столкнулся со следующими проблемами:
1. Как записать программу во флеш память МК?
С помощью JTAG прошиваю его, все работает, после передергивания питания приходится заного прошивать.
2. Не понятный результат при работе с USART.
Создаю буфер размера N, в него записавыю принимаемые символы, если буфер полон, то вывожу его содержимое и затираю, если смотреть через дебагер, то все работает правильно, а если через Terminal и другие подобные программы, то возникает ошибка. Допусти у нас буфер размера N, тогда первые N элементов записываются и выводятся нормально, а далее в него записывается всегда N-3 элемента, недостающие 3 элемента берутся из 1-й записи т.е.
Ввели: Получаем:
12345 54321
qw wq123
rt tr321.

Вот код:
CODE

char Buffer[BUFFER_SIZE] = { 0 };
int index = 0;
while(1)
{
b=USART_Read(USART0);
if (index == BUFFER_SIZE)
{
USART_WriteBuffer(USART0, Buffer, index);
memset(Buffer, 0, sizeof(Buffer));
index = 0;

}
else
{
Buffer[index++]=b;

}
}

Не понимаю где хранятся эти три элемента, логически вроде все правильно.


Сообщение отредактировал sinh - Jan 24 2013, 14:38
Go to the top of the page
 
+Quote Post
andrewlekar
сообщение Jan 25 2013, 06:17
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 837
Регистрация: 8-02-07
Пользователь №: 25 163



Кто-то где-то врёт. Возможно код приведён неполный. Судя по вашему коду недостающие элементы добавляться не должны, но должен пропадать первый символ после N.
Попробуйте ещё FIFO отключить у UART - возможно оттуда валятся уже обработанные данные.
Go to the top of the page
 
+Quote Post
sinh
сообщение Jan 25 2013, 08:23
Сообщение #3





Группа: Участник
Сообщений: 11
Регистрация: 15-11-12
Пользователь №: 74 397



Код именно такой!! Под JTAG смотрю все работает правильно!!! Запускаю Terminal и правильно выдается только 1-я посылка из N символов! Ага, 1-й символ пропадает, это спецом так сдлал.

Что бы программа сохранялась во флеш, только в настройках IAR нужно же указывать адреса блоков???

Сообщение отредактировал sinh - Jan 25 2013, 08:23
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Jan 25 2013, 08:27
Сообщение #4


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Цитата
FIFO отключить у UART

"А с этого места поподробнее"
Где у SAM3S4B в UART FIFO спрятался? Мне он не помешал бы!
Go to the top of the page
 
+Quote Post
sinh
сообщение Jan 25 2013, 08:28
Сообщение #5





Группа: Участник
Сообщений: 11
Регистрация: 15-11-12
Пользователь №: 74 397



Эти значения(посылка из N символов) хранятся в памяти с адресом: 0x00C00000 - 0x1FFFFFFF. Как ее программно можно очистить??

Сообщение отредактировал sinh - Jan 25 2013, 08:31
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Jan 25 2013, 18:47
Сообщение #6


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Цитата(sinh @ Jan 25 2013, 12:28) *
Эти значения(посылка из N символов) хранятся в памяти с адресом: 0x00C00000 - 0x1FFFFFFF. Как ее программно можно очистить??


Вы же в своём примере примепняли memset... или не заметили?
Go to the top of the page
 
+Quote Post
sinh
сообщение Jan 26 2013, 07:40
Сообщение #7





Группа: Участник
Сообщений: 11
Регистрация: 15-11-12
Пользователь №: 74 397



Немного другой смысл вкладывал, в моем 1-м посте я написал у меня откуда то берутся 1-е три символы (из первой посылки) и пример привел, хотя я и использую memset!!

Сообщение отредактировал sinh - Jan 26 2013, 07:42
Go to the top of the page
 
+Quote Post

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

 


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


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