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
Didn't find your answer? Ask the community — no account required.
I
invalid unparseable
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³
J
Janusz
Dziekuje bardzo za ospowied¼ Pozdrawiam AzaZeL
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required
Report Content
You are reporting this content to the moderators. They will look at it
ASAP.