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

slava7c

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

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

  • Посещение

Репутация

0 Обычный

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

  • День рождения 14.08.1972

Контакты

  • Сайт
    Array
  • ICQ
    Array
  1. arm7 - глюк прерывний RTC

    Имеем LPC2468, следующий код корректно работает в симуляторе, В реале прерывание отрабатывает ровно 1-н раз (( U32 sec_from_start = 0, ticks_per_sec, ticks_before_16_sec; __irq void rtc_handler() { U32 tick = T2TC; RTC_ILR = 1; U32 cnt = sec_from_start + 1; sec_from_start = cnt; if( ! (cnt & 15) ) ticks_per_sec = ((tick - ticks_before_16_sec)+15) >> 4; ticks_before_16_sec = tick; } }; void after_reset() { // ... // init_tm_2 { // Грубый подсчет частоты RTC_CIIR = _BV(0) | _BV(3); // sec, day RTC_AMR = 0xFF; // disable alarms RTC_CISS = 0; // disable sub-sec U32 tick = 0; RTC_ILR = 7; // clr do { tick = T2TC; } while(!(RTC_ILR & 1)); U32 v = tick; RTC_ILR = 7; // clr do { tick = T2TC; } while(!(RTC_ILR & 1)); ticks_before_16_sec = tick; ticks_per_sec = tick - v; } VICVectAddr13 = (U32)(rtc_handler) VICVectPriority13 = 0; VICIntEnable = 1u << 13; } int main() { after_reset(); for(;;) { // ... print_cur_time(); printf("%d %d", ticks_per_sec, sec_from_start); } } На выходе имеем: sec_from_start = 1, при останове в режиме отладчика: PCONP, RTC_CIIR, VICIntEnable, VICIRQStatus - все за то что прерывание должно быть, но его нет (( В чем могут быть грабли ?
  2. Отладка RTX

    в соответствии с докой от кейл состряпал прогу int main() { init_io(); os_sys_init(create_tasks); for(;;) {} } Попытка поставить точку останова - не спасает, при останове - видим что попали на DAbt_Handler. При запуске с трассировкой (break-point на LDR R0, =__main) - иногда доходим до main. В чем может быть причина ? И в догонку процесс: __task void gui_task() { Gui_info& g = g_gui; g.task_id = os_tsk_self(); os_evt_set(EV_INIT_LCD, task_id); // ... for(;;) { U16 ev = os_evt_get() & EV_ANY; // ... } } На 1-м входе в цикл получаем ev == 0 why ?!
  3. Вопрос снят... в самом начале кода была строка PCON = PCONP | ... & ... ; (((
  4. Keil 4.20 J-Link 4.28 Выставлена частота работы с j-link 100 кГц
  5. Грабли с JTAG-ом ?

    Я неофит в ARM-ах. Имеем связку Keil - JLink - LPC2468. startup-code из keil - отключена только внешняя память, внешний кварц на 12 - по умолчанию разгоняем до 48. Создаем пустой проект ( int main() { for(;;) __nop(); } - все работает. На одной плате прошивка с тупым опросом клавиатуры и вывода на LCD rtc и скан-кодов - работала (вчера), на другой - запустилась 1-раз (но только на внутреннем кварце). Сейчас работает только пустой проект - при загрузке еще вчера работавщего кода из keil / jflash - отваливается (Не смотря на то что в опциях отладки сброшен Run main ) - сразу после загрузки прошивки - J-link перестает видеть проц. Спасает только перемычка EINT0. попытка отключить PLL или выбрать внутренний кварц - не спасает. Как лечить ?
×
×
  • Создать...