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

Elm

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

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

  • Посещение

Репутация

0 Обычный

Информация о Elm

  • Звание
    Участник
    Участник
  1. Я пробовал работать с Eclipsом...Правда код генерил для PowerPc сделал тестилку RAM памяти... результат неутешителен-код получился довольно медленный... в итоге я поставил toollchain под powerpc собственно результаты этого набора в разы отличаются..от eclipsoвских... во вторых мой eclips не поддерживал вообще никакой оптимизации и не позволял осуществлять сборку модулей ядра.... вообщем случае сборка toolchain под ARM следующая, как вообщем и под powerpc Для сборки toolchain для микропроцессоров семейства ARM необходимы исходные коды следующих компонент: binutils gcc ulcibc linux-kernel 1. собираем binutils 2. получаем заголовки ядра и uClibs 3. собираем компилятор 2. собираем uClibs 4. пересобираем компилятор
  2. interrupt void SciRX(void);//Объявление обработчика прерывания Вот мои настройки для прерывания, правда под SCI receive тут порядок правильный, кстати обработчик лучше не приводить к виду PINT а использовать слово interrupt : InitSysCtrl(); DINT; InitPieCtrl(); IER = 0x0000; IFR = 0x0000; InitPieVectTable(); EALLOW; PieVectTable.RXAINT= &SciRX; EDIS; InitFlash(); EALLOW; InitGPIO(); EDIS; InitSci(); PieCtrlRegs.PIEIER9.bit.INTx1 = 1; //SCIARX IER |=(M_INT9); EINT; // Enable Global interrupt INTM ERTM; // Enable Global realtime interrupt DBGM
  3. Я забыл вчера оговориться . Если вы работаете с симулятором то вообщем можете забыть о прерываниях.8))
  4. PieCtrlRegs.PIEACK.bit.ACK6=1; это зачем? это прописывается в обработчике PieCtrlRegs.PIEIFR6.all=0x000f; PIEIFR - это регистр прерываний он доступен для чтения в нём отображаются текущие прерывания PieCtrlRegs.PIEIER6.all=0x000f; насколько японимаю это единицы в младших разрядах PIEIER6 используйти отдельные биты
  5. Не совсем понимаю.. . 1) У меня в FIFO любого модуля в системном регистре есть поля: глубина Фифо(задаёте сами) и статус фифо (доступное только для чтения) в котором отображаются количество слов...Ну вообщем то это уже не важно раз отправка работает... 2) прерывания у меня настраиваются след образом 1) в таблицу векторов прерываний на конкретное прерывание записывается функция его обработчик2) в блок группы преываний единицей выдаётся разрешение на это прерывание (у меня регистры PIEIER) 3) разрешаются прерывания в системных регистрах использумого модуля(SPI , SCI,McBSP и т.д.)4) в регистр IER накладывается маска на разрешение работы группы (п.2)5) разрешаются общие прерывания...
  6. А как насчёт использования прерываний...У меня F2812 мне самому скоро предстоит spi заниматься..А нельзя в Spi для определения окончания передачи использовать флаг статуса FiFO А код возврата в дизассемблере правильный?
  7. 1)Это системная секция она не может не определяться.Хотелось бы узнать что конкретно выдаёт компилятор 2) (по поводу RTS)Просмотрите опции линковки там можно в поле include libraries прописать путь к rts файлу...второй вариант наиболее простой напрямую подключить файл к проекту. Выбирайте любой
  8. Имеется ввиду секция инициализированных констант .cinit?
  9. Люди работал ли кто нибудь с модулем McBsp в SPI master режиме? Есть ли примеры правильной инициализации данного блока под этот режим?А то следуя документации что то не очень получается его отинициализировать. Был бы очень благодарен за любую тестовую программу.
  10. я вроде нашёл в чём косяк.... Такое сложилось впечатление что там ограниченная длина хидера или область видимости. у меня вначале программы всякого мусора много типа директив #define я их всех покоцал и поля выползать начали опять :) . Я думаю что на самом деле косячная утилита Code Sense..
  11. Проблема в следующем: при написании кода в данной версии CCS перестали появлятся выпадающие списки полей собственных типов данных... вообще всех. После указания точки после имени структуры в строке статуса CCS пишет No members found, Но при этом компилятор никаких ошибок и замечаний не выдаёт..
  12. Очто означает фраза " код начальной загрузки".... мне вообще тут в голову мысль пришла что нужно какимто образом перед прерыванием int 00 функцию mem Copy встатвить.. То есть в секции codestart перед передачей управления к int 00 скопировать секцию .text, а то получается дурная ситуации.. когда функция memcopy прописана в коде, то есть в самом .text затем передаётся управление на апервый дрес SARAMa а там кукиш... :)
  13. ещё раз подчёркиваю не отдельные функции, а всю секцию целиком... к проекту подключаются порядка 10 файлов, в каждом из которых от 2 до 4 функций. ДЛля каждой функции придётся создавать отдельную секцию... вот именно этого и хочется избежать.... Вопрос возможен ли такой пернос вообще... О том как переносить довольно подробно описывается в документе spra958е. Там даже описан пример с секцией .econst. В случае с секцией .text компилятор а затем линковщик никаких ошибок не выдаёт, но после загрузки программы программный счётчик указывает на инструкцию ITAP0... :(
  14. Люди подскажите.. Возможно ли перенести системную секцию .text в Saram целиком а не отдельными функциями...
  15. 2 Olegovich Проблема не совсем в этом.... В линковщике необходимо указать адрес загрузки во Flash, а адрес работы секции из srama. Если не ощибаюсь при этом при этом необходимо вызвать стандартную функцию memcopy в качестве парметров которй выступают: начальный адрес загрузки секции(т.е. Flash), начальный адрес запуска (т.е. Sararm ), и длина секции.Э то следует из документа spra958e/ Проблема как раз таки и заключается в этой функции копирования. То есть если мы хотим некоторые отдельные функции программы, залитой во flash, выполнять из sarama то проблем не возникает... Эти проблемы появляются когда речь идёт о целой секции....
×
×
  • Создать...