Vaszo 0 9 апреля, 2010 Опубликовано 9 апреля, 2010 · Жалоба Здравствуйте! Прошу помощи, совета в разрешении нижеприведённого вопроса. Собрал отладочную плату на базе TMS320C6722, установил CCS3.3 с последним обновлением, написал простейшую программку (мигать лампочкой), подключил эмулятор, в GEL файле сконфигурировал необходимый порт, написал функцию для мырганья лампочки (GEL). Мырганье лампочки посредством GEL функции работает Отлично. А когда загружаю Си-ую программку, скомпилированную без ошибок и замечаний, ничего не работает, даже в main-функцию не заходит. После старта в _init00 выполняются какие-то ассемблерные команды, уходит по адресу 0x00001DDC и зацикливается. Вопрос: Как это побороть? может быть секции неправильно распределены или настройки компилятора специальные нужны (сейчас Target Version C67x+)? cmd файл брал sprc203 - patch.cmd Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
talus 0 12 апреля, 2010 Опубликовано 12 апреля, 2010 · Жалоба После старта в _init00 выполняются какие-то ассемблерные команды, уходит по адресу 0x00001DDC и зацикливается. Чем заливаете то? Похоже у вас просто не залилась ваша программа. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vaszo 0 12 апреля, 2010 Опубликовано 12 апреля, 2010 · Жалоба Заливаю программу в RAM проца (в cmd все секции в ней определены) через JTAG (File->Load program). :unsure: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
talus 0 12 апреля, 2010 Опубликовано 12 апреля, 2010 · Жалоба Заливаю программу в RAM проца (в cmd все секции в ней определены) через JTAG (File->Load program). :unsure: Этто понятно, вопрос а залилась ли она? Проверьте. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vaszo 0 12 апреля, 2010 Опубликовано 12 апреля, 2010 · Жалоба При загрузке никаких предупреждений о ошибках не было, а в options->Customize->Program/Project/CIO стоит галочка в "Perform verification duringProgram Load". Я думаю, если что не так, CCS сообщил бы мне или нет? А может на это как-нибудь влиять встроенный в ROM загрузчик проца, у меня он сейчас в режиме загрузки с внешней flash? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
talus 0 12 апреля, 2010 Опубликовано 12 апреля, 2010 · Жалоба При загрузке никаких предупреждений о ошибках не было, а в options->Customize->Program/Project/CIO стоит галочка в "Perform verification duringProgram Load". Я думаю, если что не так, CCS сообщил бы мне или нет? Сам недавно с таким столкнулся, не всегда сообщает оказывается. Какой у вас эмулятор, чем шьете то? А может на это как-нибудь влиять встроенный в ROM загрузчик проца, у меня он сейчас в режиме загрузки с внешней flash? Нет не влияет! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vaszo 0 12 апреля, 2010 Опубликовано 12 апреля, 2010 · Жалоба Эмулятор - копия Wintech TDS510USB от Evodbg.com (X510 ), драйвера те же. Нареканий по поводу эмулятора пока не было, пишет читает в регистры и память без проблем, через GEL макет работает (пока мыргает лампочкой). Си-ый файл дезассемблируется. В регистре PC пробовал непосредственно задавать адрес main ф-ии - появляются возможность пошаговой отладки в Си, но к результату это не приводит всё равно сваливается в 0x00001DDC. Попробую переустановить CCS. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
talus 0 12 апреля, 2010 Опубликовано 12 апреля, 2010 · Жалоба Эмулятор - копия Wintech TDS510USB от Evodbg.com (X510 ), драйвера те же. Нареканий по поводу эмулятора пока не было, пишет читает в регистры и память без проблем, через GEL макет работает (пока мыргает лампочкой). Попробую переустановить CCS. Кхмм есть подозрение, что виноват эмулятор ваш... Попробуйте с камушкем другой серии проделать тоже самое. Ну и код давайте пакажите чё там делаете то, вдруг перемудрили? P.S. Мой SAU510 заработал с С672x тока после общения с техподдержкой ;) хотя с С64x работал прекрасно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vaszo 0 12 апреля, 2010 Опубликовано 12 апреля, 2010 · Жалоба #define PFUNC0 0x44000010 #define PDIR0 0x44000014 #define PDOUT0 0x44000018 #define PDSET0 0x4400001C #define PDCLR0 0x44000020 void main () { int i; /* AXR08*/ *(int *)PFUNC0 |= 1<<8; // GPIO *(int *)PDIR0 |= 1<<8; // Output while(1) { *(int *)PDOUT0 |= 1<<8; // Up for(i=0;i<10000;i++); *(int *)PDOUT0 &= ~(1<<8); // Down for(i=0;i<10000;i++); } } Кстати, для проверки пробовал поменять распределение секций с RAM на SDRAM, а EMIF в GEL не стал настраивать. Так CCS поругался, что не может туда загрузить, думаю это показательно для проверки "Perform verification duringProgram Load". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
talus 0 12 апреля, 2010 Опубликовано 12 апреля, 2010 (изменено) · Жалоба Main это конечно очень позновательно и увлекательно. Но интереснее посмотреть ваш .gel и .cmd Лучше файликом не нада всё постить. Изменено 12 апреля, 2010 пользователем talus Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vaszo 0 12 апреля, 2010 Опубликовано 12 апреля, 2010 · Жалоба В архиве используемые gel и cmd 123.rar Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
talus 0 12 апреля, 2010 Опубликовано 12 апреля, 2010 (изменено) · Жалоба В архиве используемые gel и cmd 123.rar Ну вот и ответ, теперь "засинхронизируйте" ваши файлы .gel и .cmd по части выделения памяти. Оъем памяти у вас выделен неверно, а как там компилятор раскидал только одному ему известно! P.S. вот это конкретно будет доcтаточно отредактировать GEL_MapAdd(0x10000000, 0, 0x00020000, 1, 1); // Internal RAM Page 0 128kBytes(C6722) IRAM_BOOT: o = 10000000h l = 00001000h IRAM_BIOS: o = 10001000h l = 00000B00h IRAM_RESERVED: o = 10001B00h l = 00000100h /* Reserved only if using ROMed applications */ IRAM: o = 10001C00h l = 0003E400h /*объем не 256кБ а 128 у вас соответственно 1E400*/ Изменено 12 апреля, 2010 пользователем talus Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vaszo 0 13 апреля, 2010 Опубликовано 13 апреля, 2010 · Жалоба Да, действительно не верный объём памяти. Недоглядел Спасибо talus за поддержку :excl: , но всё равно не работает - ничего не изменилось. Также стартует с c_int00, затем идёт куча ассемблерных команд, main-функция дезассемблируется. Debug ->Go Main уходит на какой-то странный адрес не далеко от c_int00 (команд 10-20), все выполняется, значения в регистрах меняются... в конце-концов уходит на 0x00001DDC. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
megadocent 0 13 апреля, 2010 Опубликовано 13 апреля, 2010 · Жалоба -l applySystemPatch.obj -l c672xSystemPatchV2_00_00.lib Насколько помню, в ридми к патчу говорится, что тут надо прописывать полный путь до файла. Может в этом дело? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vaszo 0 13 апреля, 2010 Опубликовано 13 апреля, 2010 · Жалоба -l applySystemPatch.obj -l c672xSystemPatchV2_00_00.lib Насколько помню, в ридми к патчу говорится, что тут надо прописывать полный путь до файла. Может в этом дело? Вроде как с последними обновлениями CCS достаточна просто добавить их в проектъ, но попробовать стоит. Спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться