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

dr_alexey

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

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

  • Посещение

Репутация

0 Обычный

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

  • Звание
    Участник
    Участник

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array
  1. Действительно... Все оказалось весьма просто, спасибо
  2. Приветсвтую! Суть вопроса: имеется проект в Keil MDK-ARM v 4.11. Проект содержит исходники рабочей программы и загрузчика. Соответственно, имется две цели сборки - собственно программа и загрузчик. В зависимости от цели подключаеются разные стартапы и дефайны, но никак не могу разобраться, как использовать разные scatter-файлы при сборке (в одном случае __main должна находится в загрузчике, а в другом соответственно в программе). Есть ли возможность в Keil задать используемый scatter-файл в зависимости от собираемой цели ?
  3. На сходный вопрос представители NXP ответили мне следующее: В большинстве кристаллов (особенно более поздних) загрузчик прошит в ROM памяти, и не может быть стерт/заменен пользователем. Для остальных кристаллов hex-файл загрузчика есть на сайте NXP и его можно записать по JTAG в случае чего. Конкретно по кристалам узнавать у техподдержки поставщиков.
  4. Не путайте функции для работы со встроенной flash и целый программны модуль. Вот код функции для записи во встроенную flash: #define IAP_LOCATION 0x7ffffff1 typedef void (*IAP)(unsigned long[], unsigned long[]); #define IAP_CMD_CopyRAMToFlash 51 static unsigned long command[5] = {0,0,0,0,0}; static unsigned long result[3]= {0,0,0}; static IAP iap_entry = (IAP) IAP_LOCATION; unsigned long IAP_CopyRAMToFlash (unsigned long dst, unsigned long src, unsigned long count) { command[0] = IAP_CMD_CopyRAMToFlash; command[1] = dst; command[2] = src; command[3] = count; command[4] = OSCclk / 1000; iap_entry(command, result); return result[0]; } Что именно скомпилирует RealView (который Вы называете Keil) и не скомпилирует GCC? Другое дело специфичные для компилятора вещи, например запрещение прерываний: __ARMLIB_disableIRQ(); // Взято из примера на Сахаре (полагаю для GCC) __disable_irq(); // Для RealView P.S. давайте воздержимся от предположений по поводу опыта друг друга. Форум не для этого
  5. Не надо выдумывать проблем, которых нет. В приведенном Application Note есть два варианта кода - ассемблерный и C. Если используемый Вами C компилятор соблюдает соглашение ARM о вызове функций, то первые 4 параметра будут переданы через регистры. Другого способа записи встроенной flash из кода, кроме как использование функций встроенного загрузчика нет, насколько мне известно.
  6. Посмотрите user manual, сайт www.nxp.com и этот форум на предмет "In application programming". Программирование встроенной Flash в LPC армах осуществляется через функции встроенного загрузчика. Вот, например аппликашка с сайта nxp: http://www.nxp.com/acrobat_download/applic...s/AN10256_1.pdf
  7. Доброго времени суток! Есть программа для проца LP2368 (C++, RealView MDK-ARM 3.50) - вывод символов в последовательный порт. Под отладчиком (MT-Link) работает отлично, пробую зашить во флэш - на порту тишина. Контрольная сумма в таблицу векторов при прошивке добавляется, на входе P2.10 подтяжка к питанию. Аналогичная программа на С запускается без проблем. В чем может быть дело?
  8. Алиса, я им ничего не сказал... (с) Устройство самое по нынешним временам обычное - GPS/ГЛОНАСС трекер + чтение некоторых параметров по CAN + GSM модем. Спасибо Step_Arm за информацию - как раз то, для чего создавалась тема. В конце-концов остановились на lpc2366/68 - решение проверенное, куча наработок, в последствии можно будет заменить на 17хх - по пинам совместимы. В lpc2294 не хватает uart-ов, а так машинка не плохая.
  9. Спасибо всем откликнувшемся. Склоняюсь к lpc1768 (будем ставить не под капот), всзвязи с этим вопрос - имеется JTAG-адаптер MT-link v5, он заработает с этим контроллером (скачал нежадный Keil 3.50)?
  10. Спасибо! Действительно, это температурный диапазон. В общем, насколько я понимаю, можно спокойно брать lpc? А с lpc17xx кто-нибудь работал уже? Нашлись багофиксы уже?
  11. Это понятно, нормальной разводки платы никто не отменял, другое дело электромагнитная совместимость самого контроллера - чувствительность к помехам по цепи питания например, которые все равно будут в этих условиях работы. У Renesas например есть специальный документ - Automotive MCU, в котором перечеслены контроллеры, расчитанные на работу в сложных условиях. Да и у NXP есть аналогичная серия мк, правда только на 51-м ядре.
  12. lpc arm в автомобиле

    Здравствуйте! Есть потребность сделать устройство, которое будет работать в автомобилях, питаясь от ботовой сети. По функционалу/цене подходят контроллеры lpc2368 (может быть lpc1768), однако на сайте nxp применение automotive заявлено только для 51 серии :crying: Всвзязи с эти вопрос: кто-нибудь использовал эти контроллеры (или вообще армы от nxp) в автомобилях? как они себя проявляют в плане emc? Не хотелось бы менять серию устройств, когда выяснится, что контроллеры глючат, если на свечах изоляция плохая...
  13. Спасибо Carolinus, проблема решилась. Привожу порядок действий, может кому пригодится. 1. Включаем поддержку ppp в ядре: Networking support Networking options->TCP/IP Networking, IP Tunneling Network Device support PPP PPP filtering PPP support for async serial ports Устанавливаем приложения pppd (MPPE enabled) и chat 2. Должно присутствовать устройство /dev/ppp. У меня например это делается добавлением строки ppp,c,108,0 в секцию DEVICES по адресу <путь к ядру>/vendors/EmbeddedArtists/LPC2468OEM_Board/Makefile 3. В /etc/ppp/peers создаем файлы gprs и chat_connect, в /etc/ppp файлы pap-secrets и chap-secrets: файл gprs содержимое (для модема на ttyS1 и скорости 19200, опсос mts): # Most GPRS phones don't reply LCP echo's lcp-echo-failure 0 lcp-echo-interval 0 # Debug info from pppd: debug # Serial device to which the GPRS modem is connected: /dev/ttyS1 # Serial port line speed 19200 # Hardware flow control crtscts # Use modem signal lines modem # Connect script to initialize the GPRS modem and start the connection connect '/bin/chat -v -e -V -f /etc/ppp/peers/chat_connect' # pppd must not propose any IP address to the peer! noipdefault # Accept peers idea of our local address ipcp-accept-local # Accept peers idea of its (remote) address ipcp-accept-remote # Add the ppp interface as default route to the IP routing table defaultroute # DNS servers from the modem usepeerdns # The phone is not required to authenticate noauth # Username user "mts" файл chat_connect содержимое (одной строкой!!!): SAY "\nstaring chat... \n" '' AT TIMEOUT 12 ABORT 'BUSY' ABORT 'NO CARRIER' ABORT 'VOICE' ABORT 'NO DIALTONE' ABORT 'NO ANSWER' OK ATH OK ATE1 OK 'AT+CGDCONT=1,"IP" ,"internet.mts.ru"' OK ATD*99***1# TIMEOUT 22 SAY "\nwaiting for connect... \n" CONNECT "" SAY "\nConnected." файл pap-secrets (идентичен chap-secrets) tele2 * tele2 * megafon * megafon * mts * mts * beeline * beeline * 4. Запуск соединения: pppd call gprs. Просмотр состояния соединения - ifconfig (должен появится интерфейс ppp0). P.S. На моей плате установлен проц LPC2468 без MMU-модуля и в используемом uClinux не поддерживается fork, как следствие pppd при запуске остается подцепленным к консоли, несмотря на параметр updetach. Лечится запуском pppd в фоновом режиме: pppd call gprs& P.P.S. Еще раз спасибо за помощь Carolinus
  14. Доброго времени суток! Пытаюсь запустить pppd в ucLinux (ядро 2.6.21, патч от EmbeddedArtists для проца LPC2468). В ядре включена поддержка ppp и chat, в /dev создаю устройтство ppp,c,108,0. При запуске pppd выдается сообщение: munmap of non-mmaped memory by process 138 (pppd): a0ba8600 и возвращаемся в командную строку. Скрипты для подключения и вывод терминала привожу ниже. скрипт gprs: lcp-echo-failure 0 lcp-echo-interval 0 тodetach debug connect /etc/ppp/peers/chat_connect /dev/ttyS1 19200 crtscts local :10.0.0.1 noipdefault ipcp-accept-local ipcp-accept-remote defaultroute usepeerdns nopcomp noaccomp novj novjccomp nopcomp noaccomp noauth user mts mtu 576 скрипт chat_connect: #!/bin/sh /bin/chat -v \ TIMEOUT 5 \ ECHO ON \ ABORT '\nBUSY\r' \ ABORT '\nERROR\r' \ ABORT '\nNO ANSWER\r' \ ABORT '\nNO CARRIER\r' \ ABORT '\nNO DIALTONE\r' \ ABORT '\nRINGING\r\n\r\nRINGING\r' \ '' \rAT \ TIMEOUT 12 \ SAY "Press CTRL-C to close the connection at any stage!" \ SAY "\ndefining PDP context...\n" \ OK ATZ \ OK AT+CGDCONT=1,"IP","internet.mts.ru" \ OK ATD*99***1# \ TIMEOUT 22 \ SAY "\nwaiting for connect...\n" \ CONNECT "" \ SAY "\nConnected." \ SAY "\nIf the following ppp negotiations fail,\n" \ SAY "try restarting the phone.\n" вывод терминала: # pppd call gprs munmap of non-mmaped memory by process 138 (pppd): a0ba8600 # Есть идеи, в чем проблема?
×
×
  • Создать...