IAR 4.41A AT91SAM7S64 dwa pytanka

Nov 02, 2008 2 Replies

Witam Wczesniej programowa³em w tym samym IAR tylko na LPC2378, teraz postanowilem poznac SAM7S64 i mam dwa pytanka dotycz±cych IAR dla SAM7.



Dostêp do rejestrów w LPC robilem np tak: FIO0SET |= 1<<15;



czyli wpis do rejestru FIO0SET.



a w SAM7S: AT91C_BASE_PIOA->PIO_PER |= 1<<15



czemu nie mo¿na poprostu albo cos podobnego? PIOA_PER |= 1<<15



I jak w³±czyæ debugowanie krok po kroku w kodzie C a nie w disassemblerze wiem ¿e na LPC te¿ mia³em z tym problem i siê ten sam komunikat pojawia³ (raz jakos to w³±czylem ale nie wiem jak) Oto komunikat:



The stack plug-in failed to set a breakpoint on "main". The stack window will not be able to display stack contents



Oczywiscie rozumiem co to znaczy tylko jak to naprawiæ?



Pozdrawiam AzaZeL



W SAMach wiele rejestrów jest podzielonych na: Enable, Disable, Status. Je¶li wpisujesz warto¶æ do rejestru Enable, to ustawiaj± siê tylko bity gdzie wpisujesz jedynkê. Je¶li wpisujesz do Disable to zeruj± siê tylko bity na pozycjach gdzie znajduj± siê jedynki. Aktualn± warto¶æ rejestru odczytasz z rejestru Status. W powy¿szym przypadku wpisz po prostu

AT91C_BASE_PIOA->PIO_PER = 1<<15;

pamiêtaj, ¿e pozosta³e linie nie zostan± zmodyfikowane!

Nie wiem jak w IARze, ale w GCC jest mo¿liwy zapis:

*AT91C_PIOA_PER=1<<15;

Ogólnie jednak zosta³y stworzone struktury i w jej obrêbie pojedyncze rejestry dlatego, ¿e mo¿e wystêpowaæ wiele identycznych peryferiów w mikrokontrolerze. Na przyk³ad mo¿e byæ 1, 2, 3 UARTy. Program powinien byæ tak napisany, aby zmiana w jednym miejscu wska¼nika na numer urz±dzenia spowodowa³o prawid³ow± pracê tego urz±dzenia. Zatem funkcji albo sta³ej przypisuje siê adres bazowy urz±dzenia, w obrêbie którego wybiera odpowiedni rejestr ze struktury. W SAM7S64 jest jeden port I/O, a w SAM7X256 na przyk³ad dwa. Dziêki wska¼nikom jest pro¶ciej wykorzystaæ fragmenty lub ca³y program do pracy na innym mikrokontrolerze lub po prostu przy zmianie jego otoczenia. Po przej¶ciu z AVRów by³o to dla mnie na pocz±tku strasznie zagmatwane, ale teraz ju¿ widzê dobre strony takiego podej¶cia. Nie mówiê, ¿e kod jest bardzo przejrzysty, ale i stopieñ z³o¿ono¶ci tego procesora i liczby peryferiów wymaga jakiego¶ usystematyzowania.

Co do reszty - nie wypowiadam siê, nie znam IARa.

Micha³

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required