Strona główna Artykuły News Przykładowe projekty dla ARMów - nowe wersje
Przykładowe projekty dla ARMów - nowe wersje
Ocena użytkowników: / 1
SłabyŚwietny 
Wpisany przez Freddie Chopin   
Sobota, 19 Wrzesień 2009 15:17

Przykładowe projekty dla procesorów NXP LPC2103 i ST STM32F103RB umieszczone w dziale Download > ARM > Przykłady, doczekały się nowej wersji. Zmiany wprowadzone do przykładów dotyczą głównie tych elementów, o istnieniu których łatwo zapomnieć - tablicy wektorów, skryptu linkera, pliku Makefile, pliku startup.

Lista najważniejszych zmian:

  • wsparcie dla C++ w skrypcie linkera, pliku Makefile i pliku startup (włączane w pliku Makefile zmienną USES_CPP),
  • zmiana w pliku Makefile i / lub w skrypcie linkera powoduje ponowną kompilację źródeł i / lub linkowanie obiektów,
  • tablica wektorów i funkcja __Default_Handler() w C, a nie w assemblerze,
  • zmiana skrótu do OpenOCD na odpowiedni dla aktualnej wersji 0.2.0,
  • pomniejsze zmiany w nazwach, formatowaniu, itp.,
  • (LPC2103) skróty do GDB zawierają opcje, dzięki którym debuggowanie jest bardziej niezawodne,
  • (STM32) pliki nagłówkowe zawarte w folderze inc/ pochodzą z stm32f10x_stdperiph_lib v.3.1.0 (najnowsza wersja).

Wyjaśnienia może wymagać kwestia zwiększenia niezawodności debuggowania LPC2103. Sprawa jest skomplikowana, więc przedstawię ideę jedynie w skrócie. Ze względu na mechanizmy zastosowane przez producenta układów z serii LPC2xxx procesor rozpoczynający sesję debuggowania wykonał już pewną część wgranego kodu. Nie jest możliwe pełne zresetowanie układu i natychmiastowe zatrzymanie rdzenia. Jeśli w kodzie włączany jest MAM lub PLL, to na początku sesji debuggowania na 99% będą one już włączone (rdzeń zdążył już wykonać kod odpowiedzialny za uruchomienie tych peryferiów). Z tego względu podczas debuggowania mogą występować nieoczekiwane i bezsensowne błędy, a procesor może zachowywać się w sposób nieprzewidywalny. Skróty do GDB, które zawarte są obecnie w przykładach, za pomocą komend OpenOCD wyłączają zarówno MAM jak i PLL przed rozpoczęciem sesji (co oczywiście nie wyklucza możliwości ponownego ich włączenia w kodzie), dzięki czemu problemy te nie powinny występować.

UPDATE (21.09):

Pojawił się drobny update (v.1.1.1-090921) projektu dla LPC2103, w którym ulepszona została implementacja tablicy wektorów w pliku vectors.c.

Zmieniony: Czwartek, 15 Kwiecień 2010 11:29