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

Shum1

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

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

  • Посещение

Репутация

0 Обычный
  1. Уважаемый CADiLO! Пытаюсь воспользоваться данной средой) Поставил компилятор и IDE, пути без пробелов. Зашил в модуль ...Embedded_AT\tools\SIM900DevIDE_MultiTask_GCC\EmbatSIM\gsmos\coreSW\rvctcore\1137B04V01SIM900M64_ST_EAT.cla Файл ...Embedded_AT\tools\SIM900DevIDE_MultiTask_GCC\EmbatSIM\gsmos\tools\version1 выглядит так: SYMFILE = 1137B04V01SIM900M64_ST_EAT.sym GLOBALMACRO = Файл ...Embedded_AT\tools\SIM900DevIDE_MultiTask_GCC\EmbatSIM\gsmos\tools\version выглядит так: 04V01 Создал проект на основе примера sms, проект собрался. при попытке зашить в модуль - Error: The type of FLASH Does not match the firmware! Куда копать? Ума не приложу. Помогите советом.
  2. Здравствуйте! Из вышеприведённых постов я понял, что с модулями wavecom особо никто из участников беседы не работал. Я же использовал в разработках модули Q2406 и постоянно использую модемы fastrack и не стал бы так всё омрачать. Эти продукты работают стабильно. Также для внутренних приложений предусмотрен watchdog, имеется вход для внешнего сброса. Я на 90% уверен, что реально выполнить задачу SergeyDon без использования внешнего процессора. Заявление не голословное, т.к. я делал девайс для управления бытовыми котлами на модуле q2406 без управляющего проца. На модуль навешивался графический ЖКИ, АЦП, контроллер в/в - всё по SPI. GPRS, к сожалению, в том проекте не использовался - хватало SMSок. Поэтому о стабильности самого стека сказать ничего не могу.... но в конце концов память модема позволяет впихнуть туда свой стек))) Если рассматривается возможность удалённой разработки - можно пообщаться)) Я в Питере.
  3. Устойчивой работы добился следующим образом: в *.xcl запретил пользовать кусок RAM размером равным коду Cstartup.s79 (у меня 0x100 байт). И потом в main() вставил ремап и копирование всего кода Cstartup.s79 в RAM. То есть все обработчики исключений положил в RAM. Иначе все вызовы обработчиков приводят к ошибкам (там переход смещением адреса прописан, а надо бы на абсолютный адрес во флэш прыгать) По-моему такой способ кривой. При изменениях Cstartup.s79 придётся менять xcl и размер копируемой области. Но переделывать Cstartup.s79 сейчас не буду - так как он взят готовый, а в ассемблере разбираться пока нет времени.
  4. не работает((( если я правильно понял, то нужно изменить диапазон для всех сегментов кода (поменять ROMSTART на 0х100000 и ROMEND на 0х10ffff), добавить в *.xcl строчки -Z(CODE)INTVEC_I=00200000-00203FFF -QINTVEC=INTVEC_I Потом объявить обработчики разрешённых во время записи флэш прерываний __ramfunc. Ну и в low_init вставить кусок кода, который копирует таблицу прерываний из флэш в ОЗУ и делает ремап на ОЗУ. Так вот, в режиме отладки IAR виснет на programming flash((( Если при этом выдернуть шнурок USB из SAM-ICE, то в окне лога читаем Я так понял, что loader пытается писать с 0x100000 и со смещением 8192 страниц (0x100000/128байт) и далее........ loader стоит по умолчанию Если в xcl вернуть диапазон ROM в первоначальное состояние 0-ffff, то отладка начинается, но после ремапа на ОЗУ вылетает в exception дата аборт или андефайнед инстракшн..... что и понятно О! Стоп....... отладку запустил - оказывается в настройках лоадера надо указывать все 4 байта адреса))) - то есть не 0x100000, а 0x00100000 - вот ведь))
  5. Вроде прочитал всё, что касается записи во флэш (по форумам и в доках). Все приведённые примеры с запретом прерываний. Мне же надо записывать порядка 10 страниц и при этом обрабатывать прерывания таймера 0,25 мс. С запретом прерываний запись работает, убираю запрет - вываливается в Prefetch Abort. В документации фраз о необходимости запрета прерываний не нашёл - либо ткните носом, почему низя прерывания пользовать (тада внешнюю память навешивать буду), либо подскажите, чего мона придумать........ Может обработчик таймера в RAM?.... или нельзя так?....... первый проект на арме - не знаю чего и придумать...
  6. ага, на 1gost видел..........но пока вопрос решился без ГОСТа - методом долгого и нудного подбора)))) если в дальнейшем возникнет необходимость - видимо придётся купить(((( а пока тему можно закрыть)))
  7. Господа, может есть у кого ГОСТ Р МЭК 61107-2001 "Обмен данными при считывании показаний счетчиков, тарификации и управлении нагрузкой. Прямой локальный обмен данными"......ну очень нужен...... два дня копаюсь по нэту - не найти..... в форуме тоже..... если есть - на мыло [email protected]
  8. Ресурс SPI DataFlash

    если вы читаете данные из флэшины раз в сутки, то видимо за сутки вы сделаете максимум один цикл её записи......... даже если брать минимальный ресурс приведённый в этой теме 10к - то получается 27 лет............ из практики использования флэшин ат45db321 ошибок не было....... правда до 10к дело ещё не дошло........))))) а контроль ошибок в качестве CRC на буфер вводить помойму целесообразно..... ресурсов ест немного, а на душе спокойней))))))
  9. MEGA И SPI

    Из достаточно большого опыта создания контроллеров на мегах с периферией на SPI могу сказать, что все устройства (АЦП; ЦАП; контроллеры CAN, UART; коммутаторы.....), управляемые по SPI имеют CS. Поэтому, если мастер один и не меняется, оптимальным является, по моему, выделить две ноги проца под чипселекты и всё........ РАЗВЯЗЫВАТЬ выходы слэйвов друг от друга ТОЧНО не надо.......... В промышленных устройствах полезно сам проц развязать гальванически от периферии, но это уже немного из другой оперы........... По поводу приёма-передачи......... вы в теле программы пИшете (после того естественно, как SPI уже настроен и требуемое устройство выбрано через его CS) SPDR=0x12; //например..... после этого, если SPI разрешён, ваш проц(мастер) выставляет синхронизацию на ноге SCK и через ногу MOSI передаёт байт 0х12........если в этот момент устройстве передаёт в проц инфу, то она тоже будет в регистре SPDR........после окончания посылки байта вылазит прерывание SPI и в нём строкой char a=SPDR; можно считать то, что прислал вам SLAVE............вот так вот........
×
×
  • Создать...