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

 
 
> AT91SAM7X256 - FreeRTOS - проблемы с памятью
RIYA
сообщение Nov 23 2006, 15:56
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 32
Регистрация: 26-10-06
Из: Ukraine, Lviv
Пользователь №: 21 690



Помогите, пожалуйста, советом.
У меня стоит задача с заданой скоростью последовательно выводить данные на SPI интефейс из внутренней RAM процесора AT91SAM7X256.
Буфер данных должен занимать от 32 000 до 64 000 байт (точно пока неизвестно). Задействование внешней памяти не планируется.
Соответсвенно остаётся от 1536 до 33 536 байт на служебные надобности.
Данные в буфер должны передаваться (и обновляться по мере надобности) паралельно выводу через USB и (или) Ethernet.
Сперва я попробовал разобраться с примером из пакета FreeRTOS IwIp for Rowley где реализованны и USB, и Ethernet. Так как нужно по возможности максимально освободить память под буфер я выбросил часть с IwIp и подключил часть кода с uIp из соседнего примера, оставив только стек TCP и выбросив все пользовательские функции (веб-сервер, телнет, etc). Правда сам стек я ещё не запустил (не дошли руки), но прикомпилировал к проекту. Добавив простую функциональность вывода на SPI и немного разобравшись в коде, а также подстроив под себя работу с USB, я решил попробовать сколько же у меня в наличии памяти. Вот тут меня постигла неудача - я смог объявить всего несколько масивов общим объёмом 5680 байт. Если я увеличиваю объём до 5760 байт линковщик Rowley начинает возмущаться записывая в лог (не помню точно, так как было позно и я не записал, а на работе у меня нет возможности повторить) невозможность работы в связи с малым объёмом памяти, используя, при этом, упоминания о UND_STACK, ABT_STACK, FIQ_STACK, IRQ_STACK, SVC_STACK.

Собственно вопрос - а стоит ли дальше играться с FreeRTOS, есть ли возможность реализовать такую задачу на базе этой оси, или там не хватит памяти и лучше обойтися без неё построив програму на прерываниях (например на базе примера работы с USB от Atmel'а и оформив передачу данных в USB через DMA)?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
defunct
сообщение Nov 23 2006, 18:53
Сообщение #2


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



С вашего позволения упорядочу:

Цитата(RIYA @ Nov 23 2006, 15:56) *
Буфер данных должен занимать от 32 000 до 64 000 байт (точно пока неизвестно).
Данные в буфер должны передаваться (и обновляться по мере надобности) паралельно выводу через USB и (или) Ethernet. У меня стоит задача с заданой скоростью последовательно выводить данные на SPI интефейс из внутренней RAM процесора AT91SAM7X256.
.....
Задействование внешней памяти не планируется.

Для описанной задачи помоему уместнее сказать Задействование внешней памяти просто необходимо и неизбежно. Либо меняйте часть задания там где требуются такие веселые объемы буфера данных.
Go to the top of the page
 
+Quote Post



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

 


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


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