22.09.2010, 09:02
|
|
Частый гость
Регистрация: 26.03.2009
Сообщений: 27
Сказал спасибо: 1
Сказали Спасибо 9 раз(а) в 7 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Да, не поленился и потратил время на прочтение всего топика, стало ясно по большей степени люди используют камни от nxp, есть люди которые пользуется atmel. А где счастливые обладатели камней luminary micro???!!!!! Нашел только одно - innovator_king. Значит я не один в этом мире ![Улыбка](images/smilies/icon_smile.gif)
Все бы хорошо, но вот уже второй день не могу разобраться с проблемой: не работает как хотелось бы. Значит что имеем:
Отладочный набор EKK-LM3S3748, среда разработки Keil 4.10 вылеченная лекарством, JTAG Jet-Link Pro.
В Keil создаю проект, на предложение добавить стартап соглашаюсь, создаю свой .C файл, туда размещаю следующий код:
Код:
|
#include ‹lm3s3748.h›
int
main(void)
{
SYSCTL_RCGC2_R = SYSCTL_RCGC2_GPIOH;
GPIO_PORTH_DEN_R = 0x01;
GPIO_PORTH_DIR_R = 0x01;
while(1){GPIO_PORTH_DATA_R = 0x01;}
} |
Компилирую, не одного варнинга, ни одной ошибки, заливаю, - ничего неработет.
Нажимаю на отладку (ctrl+f5), программа пошагово выполняется, и в бесконечном цикле включается соответствующий светодиод.
Если в бесконечный цикл поставить
Код:
|
GPIO_PORTH_DEN_R = 0x01;
GPIO_PORTH_DIR_R = 0x01;
GPIO_PORTH_DATA_R = 0x01; |
То светодиод загорается, даже не в режиме отладки, не могу понять почему так.
Стартап ничем не отличается от тех что предлагает в исходникам сама LuminaryMicro.
Даже сравнивал настройки своего проекта с настройками проектов Luminary Micro, вроде все одинаково, в чем проблема?
|
|
|
|
22.09.2010, 12:02
|
|
Частый гость
Регистрация: 07.12.2009
Сообщений: 34
Сказал спасибо: 14
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Подскажите, есть ли готовые библиотеки для uVision для работы например с знакосинт. ЖКД, или для удобной работы с SPI, 1-wire, I2С?
Да хотя бы чтобы можно было написать delay_ms(100), а не городить цикл For().
Работаю с LPC2103.
П.С. До этого писал для аврок на микропаскале. Дак после этого, писать на си для арма всё равно, что пытаться перочинным ножиком разобрать вертолёт Ми-8. Оно конечно можно, но долго и неудобно...
Последний раз редактировалось NurAnion; 22.09.2010 в 12:04.
|
|
|
|
22.09.2010, 15:24
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Сообщение от NurAnion
|
Да хотя бы чтобы можно было написать delay_ms(100), а не городить цикл For().
|
Для ядра ARM7 точные задержки программным циклом получить не удастся - время выполнения инструкции не фиксированно и зависит от нескольких факторов - настроек МАМ, от того где выполняется кусок программы - во флеши или в ОЗУ и т.д. Задержки нормально можно сделать только таймером, благо их много обычно. Запустите один в свободный полет и напишите функцию задержки по значению счетного регистра. А лучше правильно составляйте алгоритм чтоб не грузить ядро тупыми задержками. У Вас ведь есть куча таймеров, контроллер прерываний, много ОЗУ и т.д.
Библиотеки в сети есть, но в основном под GCC.
Гугл их находит легко. Вот например - http://hubbard.engr.scu.edu/embedded/arm/armlib/
|
|
|
|
27.09.2010, 13:53
|
|
Частый гость
Регистрация: 26.03.2009
Сообщений: 27
Сказал спасибо: 1
Сказали Спасибо 9 раз(а) в 7 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Сообщение от Dmitry_Migathev
|
Да, не поленился и потратил время на прочтение всего топика, стало ясно по большей степени люди используют камни от nxp, есть люди которые пользуется atmel. А где счастливые обладатели камней luminary micro???!!!!! Нашел только одно - innovator_king. Значит я не один в этом мире ![Улыбка](images/smilies/icon_smile.gif)
Все бы хорошо, но вот уже второй день не могу разобраться с проблемой: не работает как хотелось бы. Значит что имеем:
Отладочный набор EKK-LM3S3748, среда разработки Keil 4.10 вылеченная лекарством, JTAG Jet-Link Pro.
В Keil создаю проект, на предложение добавить стартап соглашаюсь, создаю свой .C файл, туда размещаю следующий код:
Код:
|
#include ‹lm3s3748.h›
int
main(void)
{
SYSCTL_RCGC2_R = SYSCTL_RCGC2_GPIOH;
GPIO_PORTH_DEN_R = 0x01;
GPIO_PORTH_DIR_R = 0x01;
while(1){GPIO_PORTH_DATA_R = 0x01;}
} |
Компилирую, не одного варнинга, ни одной ошибки, заливаю, - ничего неработет.
Нажимаю на отладку (ctrl+f5), программа пошагово выполняется, и в бесконечном цикле включается соответствующий светодиод.
Если в бесконечный цикл поставить
Код:
|
GPIO_PORTH_DEN_R = 0x01;
GPIO_PORTH_DIR_R = 0x01;
GPIO_PORTH_DATA_R = 0x01; |
То светодиод загорается, даже не в режиме отладки, не могу понять почему так.
Стартап ничем не отличается от тех что предлагает в исходникам сама LuminaryMicro.
Даже сравнивал настройки своего проекта с настройками проектов Luminary Micro, вроде все одинаково, в чем проблема?
|
Ответ на свой вопрос я нашел, после SYSCTL_RCGC2_R = SYSCTL_RCGC2_GPIOH; необходимо было подождать некоторое время. Взял из примера blinky.c:
Код:
|
//
// Enable the GPIO port that is used for the on-board LED.
//
SYSCTL_RCGC2_R = SYSCTL_RCGC2_GPIOF;
//
// Do a dummy read to insert a few cycles after enabling the peripheral.
//
ulLoop = SYSCTL_RCGC2_R; |
так все работает, только не нравится что во время отладки в keil, во вкладке General Purpose Input/Output не ставится галка в регистре DATA, при выполнении GPIO_PORTH_DATA_R = 0x01, почему так?
|
|
|
|
01.10.2010, 08:30
|
|
Частый гость
Регистрация: 08.09.2009
Сообщений: 48
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Привет, подскажите кто знает, возможно ли в Cortex m3 (LPC1756) стереть стандартный isp загрузчик. Не могу никак получить доступ к памяти по адресам загрузчика 0x1f000000-0x1fff1fff. Хотелось бы написать собственный первичный загрузчик.
|
|
|
|
01.10.2010, 13:04
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Сообщение от VovkaSOL
|
возможно ли в Cortex m3 (LPC1756) стереть стандартный isp загрузчик. Не могу никак получить доступ к памяти по адресам загрузчика 0x1f000000-0x1fff1fff. Хотелось бы написать собственный первичный загрузчик.
|
Возможно. Стереть встроенный можно, но только написав сначала свой. Единственная сложность - NXP не документирует запись во флеш, так что непонятно как это делать. Придется дизассемблировать встроенный, чтоб это узнать.
|
|
|
|
01.10.2010, 15:32
|
|
Частый гость
Регистрация: 08.09.2009
Сообщений: 48
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Вопрос как его выкачать, у меня почему то нет доступа к секторам бутовым. Jtag отказывается их читать
|
|
|
|
01.10.2010, 18:57
|
|
Временная регистрация
Регистрация: 09.09.2009
Сообщений: 91
Сказал спасибо: 10
Сказали Спасибо 6 раз(а) в 4 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Цитата:
|
А где счастливые обладатели камней luminary micro???!!!!! Нашел только одно - innovator_king.
|
Почему-то не нравится он народу, и то им не так и это...
А я в некоторых проэктак начал их с успехом применять (LM3S9B92,95,96). Для простых Ethernet приложений самое оно.
|
|
|
|
01.10.2010, 19:08
|
|
Вид на жительство
Регистрация: 30.07.2009
Адрес: SPb, RU
Сообщений: 382
Сказал спасибо: 81
Сказали Спасибо 119 раз(а) в 92 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
diglook, выскажу своё "лохарское" мнение: зато присылает их, бесплатно, для пробы, TI в больших количествах, ещё и звонит, спрашивая, что-бы там улучшить...
|
|
|
|
02.10.2010, 03:51
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Сообщение от VovkaSOL
|
Jtag отказывается их читать
|
Ну скопировать в ОЗУ вначале. Можно вообще без JTAG - в компорт вывалить или на карту записать. 8кБ не великий объем. Хотя я с LPC17xx не уверен что вообще пройдет - там есть загадочный MPU, предназначение которого как раз защищать отдельные области памяти от чтения/записи/выполнения инструкций. Описания в UM на этот модуль не приводится, только то, что он опциональный и в LPC17 включен. Но попробуйте перекинуть загрузчик в ОЗУ, много времени это не займет.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 11:17.
|
|