Перейти к содержанию
    

DA830 (OMAP-L137) скорость работы stdio функций fwrite() fread() под CCSv5

Всем доброго дня.

 

Есть небольшой отладочный проект на Си под DSP ядро этого процессора, смысл которого в чтении\записи NAND флеши, подключенной к нему на плате.

Смысл простой - подключается JTAG, из под CCS грузится приложение во внутреннюю память DSP, запускается, и из под CIO консольки отладчика вводом текстовых команд производится чтение флеши.

 

Передача содержимого идёт встроенными функциями stdio fwrite() или fread() через JTAG XDS100v2.

 

Так вот - скорость передачи при этом получается небольшая, около 3 килобайт в секунду, видимо из-за большого оверхеда отладчика.

А при больших объёмах флеши нанд это очень и очень медленно.

 

Может быть, у кого нибудь есть опыт, как добиться большей скорости, используя только отладчик и среду CCS, может быть другой версии?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дело в том, что я ограничен ресурсами - только внутренняя память процессора, это около 300 килобайт RAM.

Можно ли уложиться в этот объём, подняв стек USB MSD Host или Ethernet?

 

Да, самое простое решение - делать обмен через UART.

 

Но придётся написать небольшую програмку для хоста.

Стандартные терминальные программы, насколько я знаю, не могут обмениваться бинарными данными?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Стандартные терминальные программы, насколько я знаю, не могут обмениваться бинарными данными?

о как! а как же обмен по протоколу x/y/zmodem?

в железке подняли порт и выдуваете пакеты данных, а со стороны компа принимаете.. упрощенный xmodem пишется за один вечер..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дело в том, что я ограничен ресурсами - только внутренняя память процессора, это около 300 килобайт RAM.

Можно ли уложиться в этот объём, подняв стек USB MSD Host или Ethernet?

Открою Вам секрет: есть целая куча контроллеров имеющих всего неск. кБ RAM, в которых прекрасно живут и Ethernet и USB.

А у Вас ЦЕЛЫХ 300кБ! :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Открою Вам секрет: есть целая куча контроллеров имеющих всего неск. кБ RAM, в которых прекрасно живут и Ethernet и USB.

Ну, несколько килобайт понятие растяжимое. Поднимал на SAM3U USB MSD Device, 50 килобайт заняло влёт, вместе с файловой системой.

Хост побольше весить будет. Но в 300 должен влезть, вероятно.

 

Пока что у меня только небольшая программа весит около 50 килобайт, со стеком и кучей по 8 КБ.

Сишная либа в основном тяжёлая, не сравнить с мелкими контроллерами.

 

Ладно, займусь написанием своей консольки под UART, с поддержкой передачи файлов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ембеддед проет

Ну, несколько килобайт понятие растяжимое. Поднимал на SAM3U USB MSD Device, 50 килобайт заняло влёт, вместе с файловой системой.

Хост побольше весить будет. Но в 300 должен влезть, вероятно.

Зачем Вам файловая система и тем более хост для обмена командами/данными с хостом?????

Достаточно один эндпоинт реализовать и всё.

 

Вот передо мной мой проектик на LPC1768:

EMAC + TCP-стек + DNS-клиент + SMTP-клиент + POP3-клиент + SNTP-клиент + некоторый свой сокетный клиент + развитая работа с внутренней флешью + задача работающая с беспроводным nRF24L01+

+ развитый отладочный вывод + пр.

И всё это влазит в ОЗУ==64K код+данные (для простоты отладки я код линкую в ОЗУ - так быстрее отлаживаться можно).

И это ещё без оптимизации! (так как компиляция для отладки). И ещё не вся ОЗУ израсходована.

 

Пока что у меня только небольшая программа весит около 50 килобайт, со стеком и кучей по 8 КБ.

Сишная либа в основном тяжёлая, не сравнить с мелкими контроллерами.

Стек 8кБ????? 8-O

Зачем такой огромный? Что Вы в нём храните???

А куча в ембеддед-проектах вообще не нужна. Даже вредна.

И причём тут тяжёлая либа? Из либы в конечный образ линкуются только используемые части.

Да и не какая она не тяжёлая. Писал я на L137 - USB-стек занимал всего неск. кБ.

 

PS: Да, ещё совет - что же Вы хотите скорости JTAG-интерфейса и выбрали самый дешёвый и тормозной JTAG?

Возьмите хотя-бы SAU510. Для вашего L137 XDS100v2 - это несерьёзно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добавлю сюда свои пять копеек:

 

1) CIO - это то, что Вы используете. Оно работает так - заполняется буфер. Затем процессор останавливается по точке останова (скрытой, но она там есть, на символе C$$IO$$ или C$$IOE$$ в функции writemsg в модуле trgmsg.с из ран-тайм либы). Затем CCS вычитывает содержимое буфера через эмулятор и средства доступа к памяти процессора. Затем запускает код на выполнение дальше. Это самое тормозное, что можно придумать. Учитывая еще и самый тормозной эмулятор, 3 КБ/с очень даже неплохо. А вообще CIO придуман для того, чтобы логи писать простенькие... Ускорить, наверное, можно - размер буфера CIO равен 32*BUFSIZ (из stdio.h), то есть, пересобрать RTL с новым bufsiz, побольше... Ну и поменять подобие эмулятора на эмулятор (хотя бы, на 510-й).

 

2) RTDX - это следующий способ общения через JTAG. Там уже идет обмен по специальному каналу, без останова процессора. Скорость зависит от эмулятора и процессора - примерно 250 кбит/с на TMS320VC5510 получается на ура. На 6000-ках побыстрее. С 100-м эмулятором, правда, этого не сделать, только 510-й или 560. Ну и надо писать клиента на PC, то есть, голым CCS не обойтись.

 

3) HS-RTDX. Это уже прерогатива 560-х эмулятором. Обмен там идет по специально выделенным проводам, EMU0....EMUxx (их там может быть много, а не только EMU0/1). И скорости уже такие, что можно реалтайм видео поток прокачать. Но - только XDS560.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за информацию. Интересно.

 

XDS100 выбрал, потому что доступный и дешёвый.

Покупать 510 или тем более 560 за 50 тысяч рублей почему то желания нет :)

Если бы подешевле найти...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Покупать 510 или тем более 560 за 50 тысяч рублей почему то желания нет :)

Если бы подешевле найти...

Ищите и расскАжете если найдёте где ;)

Официальный на sauris.de там и цены. Мы раньше покупали по 645$

Может ещё можно какую отладочную плату поискать со встроенным 510-м и поюзать оттуда. Не знаю.

Если работаете для конторы, то для неё это не деньги. Будете пытаться экономить на пуговицах - потеряете гораздо больше на времени разработки.

 

А вообще - я ещё в начале посоветовал - используйте любой другой канал, не JTAG. Если возможно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А вообще - я ещё в начале посоветовал - используйте любой другой канал, не JTAG. Если возможно.

Так и делаю. Спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Официальный на sauris.de там и цены. Мы раньше покупали по 645$

Там же есть теперь и версия "Lite", без гальваноразвязки, со всеми теми же фичами, но не развязанная. А что касается развязанного, то будет подорожание, где-то, наверное, к осени, он, в связи с выходом Lite версии, переходит на USB SuperSpeed (в стадии разработки) с сильным повышением скорости, а "V.2" по этой причине будет снят с пр-ва (но не с поддержки, разумеется).

Изменено пользователем SAURIS GmbH

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Покупать 510 или тем более 560 за 50 тысяч рублей почему то желания нет :)

Если бы подешевле найти...

Прошу прощения за скрытую рекламу

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...