Witam, mam problem z debugowaniem procka LPC1788.
Otóż program sam w sobie działa poprawnie po wgraniu do flash za pomocą OpenOCD. Jednak z debugowaniem sprawa przedstawia się następująco:
- jeśli dany program był wcześniej uruchomiony na procku, to po uruchomieniu debuggera ResetISR() wykonuje się prawidłowo i program działa, można sobie steppować itd
- jeśli program nie był wcześniej uruchomiony lub program się wysypał na skutek błędu (wylądował w jakimś xxxFault), to ResetISR() dochodzi do momentu zerowania sekcji BSS i ląduje w HardFault().
To jest standardowy plik cr_startup_lpc178x.c dołączony do przykładów z LpcExpresso.
I moje pytanie - bo CM3 są dla mnie nowymi prockami - czy trzeba coś ekstra ustawiać/resetować na samym początku programu? Przerwania? tryb pracy? priorytety? Z pewnych względów nie używam środowiska CodeRED tylko klasycznie OpenOCD + CodeSourcery. Trochę się to nie trzyma kupy że program sam działa, a przy sesji debuggera działa tylko jeśli był wcześniej uruchomiony (czyli że niby jakaś konfiguracja została w rejestrach która pozwala na poprawną pracę?)
Przewija się przez forum parę wątków gdzie ludzie twierdzą że część problemów wynika z samej CMSIS, ale im program w ogóle nie działał, a mi działa.... warunkowo
Otóż program sam w sobie działa poprawnie po wgraniu do flash za pomocą OpenOCD. Jednak z debugowaniem sprawa przedstawia się następująco:
- jeśli dany program był wcześniej uruchomiony na procku, to po uruchomieniu debuggera ResetISR() wykonuje się prawidłowo i program działa, można sobie steppować itd
- jeśli program nie był wcześniej uruchomiony lub program się wysypał na skutek błędu (wylądował w jakimś xxxFault), to ResetISR() dochodzi do momentu zerowania sekcji BSS i ląduje w HardFault().
Code: c
To jest standardowy plik cr_startup_lpc178x.c dołączony do przykładów z LpcExpresso.
I moje pytanie - bo CM3 są dla mnie nowymi prockami - czy trzeba coś ekstra ustawiać/resetować na samym początku programu? Przerwania? tryb pracy? priorytety? Z pewnych względów nie używam środowiska CodeRED tylko klasycznie OpenOCD + CodeSourcery. Trochę się to nie trzyma kupy że program sam działa, a przy sesji debuggera działa tylko jeśli był wcześniej uruchomiony (czyli że niby jakaś konfiguracja została w rejestrach która pozwala na poprawną pracę?)
Przewija się przez forum parę wątków gdzie ludzie twierdzą że część problemów wynika z samej CMSIS, ale im program w ogóle nie działał, a mi działa.... warunkowo
