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

Danilov

Участник
  • Постов

    11
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный
  1. Помогите найти программы: ComET и ETS (Etel Setup) а также обновления прошивок для сервоусилителей Модель сервоусилителя (Etel DSB2S224 Servo Amplifier Drives) интерфейс RS422/RS232, USB отсутствует. На www.etel.ch support не посылайте. Уже хожено - рыбы не дают. :smile3046: :crying: Или только вместе с логином.
  2. u16 My_FIR_Filter(FIFO_Buf_16 *p, u16 length) { int ii; u16 temp; u16 *tt; __disable_interrupt(); asm ("nop"); RESLO=0; RESHI=0; tt=p->Now_RD; for (ii=0;ii<(length-1);ii++) { MACS=tt; OP2=B[ii]; if((tt)==(p->End_Buf)) tt=p->Begin_Buf; else tt++; } temp=RESHI; __enable_interrupt(); temp<<=1; if (SUMEXT) temp=0; return (temp); }
  3. Дл я того чтобы сделать ассемблерную вставку, нужно: 1. Создать отдельный файл (например 1.с) 2. В нём написать строчку типа asm ("nop"); 3. Откомпилировать, а затем окрыть файл 1.s43 4. Найти в нём свою строчку, а дальше резвиться сколько душе угодно :)
  4. >>А не могли бы Вы поподробнее описать, как все-таки заставить Code Composer 3.1 работать с >>TMS320F206 ? В наличии composer, плата с процессором и XDS510 Emulator. Нужно взять конфигурацию от F2406 система комманд у них одинаковая, и для начала попробовать приконектиться к целевой системе и запустить уже зашитую прошивку. Потом по даташиту подрихтовать GEL файл (от корректировать карту памяти и портов) Вообще у нас не получилось ставить H/W breakpoint в ССS3.1 хотя в старом Code Composer (без студио) они работали. Ну и профилировку F206 тоже не поддерживает. Так что по сути можно только запустить, остановить прошивку и посмотреть значениия переменных и портов. Я в основном надеялся что в CCS3.1 компиллятор не такой глючный и боьше соответствует стандарту, но..... Хотелось бы пообщаться по поводу его глюков. Заранее спасибо.
  5. >>отладку рекомендую проводить именно с ОЗУ по максимуму. А каким макаром ее проводить в ОЗУ то? при его размере в 9кб, размере прошивки 50кб, и практически полностью статически распределнном ОЗУ для данных? Также предполагаем что мы работает с целевый устройством содержащим другие чипы, датчики и исполнительные устройства, а не с отладочными платами, на которых ничего собственно и не отладишь. Тут только дербанить девайс и запаивать С чипы вместо F, которые еще и заказать надо, что не так и просто для устаревших моделей.
  6. __low_level_init (void)

    >>В той ветке не было подтверждения, что причиной подвисания был WDT. У вас у самого были реальные случаи срабатывания WDT при инициализации памяти? На уроке: - Гоги, докажи теорему. - МАМОЙ КЛЯНУС! Если бы не было, я бы об этой функции тоже ничего не знал, не нужна была бы она нам. Самое неприятное тут что пока программа относительно небольшая, то все ОК, но в один прекрасный день когда ты ее полгода уже пишешь и все железо отлажено, а все порты давно корректно проинциализированы это случаештся и ты сидишь и думаешь "А ГДЕ ГРАБЛИ ТО?" ну добавил очередную глобальную или статическую переменную и БАЦ (вернее PUC) - висим, убрал и опять работает. Где точная граница мы выяснять не стали, (тем более что зависит от версии библиотеки) но у меня это МЕНЕЕ половины RAM на MSP430F169. Да, еще инициализация массивов одним значением идет гораздо быстрее, чем отдельных переменных, находящихся по разным адресам и разными значениями. Так что, если ваш тест был с большими массивами, то его нельзя считать корректным, и вообще врят ли имеет смысл искать эту границу.
  7. GEL Файл соответсвующий процессору подгрузить это конечно хорошо, так как именно нем записана карта памяти, (открой его и посмотри там есть что-то похожее на GEL_MapReset(); /* Reset the CCS memory map */ GEL_MapOn(); /* Turn on memory mapping */ /* Program Space Memory */ GEL_MapAdd(0x0000,0,0x8000,1,0); /* Flash */ GEL_MapAdd(0x8000,0,0x0800,1,1); /* SARAM */ GEL_MapAdd(0xFF00,0,0x0100,1,1); /* DARAM B0 */ /* Data Space Memory */ GEL_MapAdd(0x0004,1,0x0001,1,1); /* IMR Reg */ GEL_MapAdd(0x0005,1,0x0001,1,1); /* GREG */ GEL_MapAdd(0x0006,1,0x0001,1,1); /* IFR Reg */ GEL_MapAdd(0x0060,1,0x0020,1,1); /* DARAM B2 */ GEL_MapAdd(0x0200,1,0x0100,1,1); /* DARAM B0 */ GEL_MapAdd(0x0300,1,0x0100,1,1); /* DARAM B1 */ GEL_MapAdd(0x0800,1,0x0800,1,1); /* SARAM */ ) Но во первых ее можно выключить совсем GEL_MapOff(), тогда CCS ничего проверять не будет, А во воторых и в главных с чего ты решил что CCS вообще МОЖЕТ чтото записать во FLASH память программ? Функция Load Program загружает программу в ОЗУ! процессоров серии C, а для всех процессоров серии F необходимо использовать специальный программатор, который есть или в виде отдельной утилиты http://emulators.spectrumdigital.com/utilities/ или в виде Plugin для CCS (для скачки надо зарегистрироваться на сайте ti) http://focus.ti.com/dsp/docs/dspplatformsc...tabId=515#doscl
  8. В отладчике CCS3.1 Есть возможность посмотреть стек вызовов Включается в Меню View/Call stack в этом окне отображаются правда не ввиде дерева а линейным списком все функции из которых был произведен вызов текущей фунции. Функция в кторой вы находитесь в данный момент сверху та из которой она вызвана ниже и т.д. Функция main не показана, (возможно у нее нет адреса возврата в стеке) И часто внизу написано ASM() не совсем ясно что значащее.
  9. __low_level_init (void)

    Пример, когда вам вроде бы не хочеться использовать __low_level_init, но придется http://electronix.ru/forum/index.php?showtopic=4298 Проблема оказалась именно в инициализации большого блока памяти. Во время которой сработал watchdog.
  10. __low_level_init (void)

    ..мало ли что вам захочется выполнить до начала выполнения main. И есть еще кое что, что вам вроде бы захочеться сделать в main, но в main вы просто не попадете! Так как Watch dog по умолчанию включен и время его срабатывания запросто может оказаться меньше времени инициализации (например если область переменных в RAM требующих инициализации достаточно большая). То он успешно сработает еще до входа в main! поэтому ПРИДЕТЬСЯ (а не захочеться) его остановить именно в этой функции. Также если при програмном сбросе нужно сохранить значение некоторых переменных (показания часов например) а не затирать их значением по умолчанию, то сделать это можно только в этой функции.
  11. >>Добрый день кто-нибудь может подсказать рабочую ссылку, где можно закачать обновления для ccs ver 3.1 для работы с flash памятью? заранее спасибо Я скачивал этот plugin прямо с ti http://focus.ti.com/dsp/docs/dspplatformsc...tabId=515#doscl, но он отказывается работать с JTAG-эмуляторами аналогами XDS510 производства Сканти Телеком и InSys Corp. модели EMU-510PCI и SDSP510-PCI, подключенными к целевой системе на TMS320F206. Пишет "Unsupported or invalid device identification number:" А так как CCS3.1 ставиться только под Win2000, а старый DOS программатор prg2xx не живет в Windows2000, то думалось что вообще CCS3.1 нам не светит. Но оказалось что по ссылке http://emulators.spectrumdigital.com/utili...PRG2xx_v332.zip лежит не DOS версия, а вполне работоспособная под Win2000. Так что пользуемся ей в CCS3.1 просто добавили в GEL файл менюшку которая вызвает bat файл для программирования флеш. Если вы работаете с чипами серии C24xx или старыми C2xx, то хотелось бы пообщатся. (Особенно по поводу глюков компилятора версии 7.04 для этой серии процессоров)
×
×
  • Создать...