Rdzenie Cortex-M i assembler

Dec 29, 2011 15 Replies

Wytłumaczcie mi cos bo sie juz pogubilem. Czytam sobie o uC LPC11xx z rdzeniem Cortex-M0. Jaki zestaw instrukcji on obsługuje? Thumb, Thumb-2, czy oba?



Podobnie troche inny STM32 z rdzeniem Cortex-M3. Jaki zestaw jest w tej grupie?


W dniu 2011-12-29 07:19, slawek7 pisze:

Cortexy M3 obługują tylko Thumb2. M0 podzbiór Thumb2 (np. nie mają dzielenia).

formatting link
formatting link

Ale jak czytam Datasheet uC czy to STM32 czy LPC11xx to tam nie jest to napisane.

W STM32 pisze ze obsługują instrukcje Thumb. Ale nie ma wzmianki czy jest to Thumb-2.

I jak to rozróżnić, która instrukcja jest zwykla Thumb a która Thumb-2?

W dniu 2011-12-29 08:27, slawek7 pisze:

A jaka to różnica jak to nazwiesz?

I dlatego dla EU marchewka tez owoc :)

formatting link
"To improve compiled code-density, processors since the ARM7TDMI have featured Thumb instruction set, which have their own state. the processor executes the Thumb instruction set, a compact 16-bit encoding for a subset of the ARM instruction set.[22] Most of the Thumb instructions are directly mapped to normal ARM instructions. The space-saving comes from making some of the instruction operands implicit and limiting the number of possibilities compared to the ARM instructions executed in the ARM instruction set state."

formatting link
"Thumb-2 technology made its debut in the ARM1156 core, announced in 2003. Thumb-2 extends the limited 16-bit instruction set of Thumb with additional

32-bit instructions to give the instruction set more breadth, thus producing a variable-length instruction set."

W przyblizeniu tryb Thumb mozna traktowac jako dodatek do podstawowego trybu ARM, zapewniajacy wysoka "gestosc kodu". Natomiast tryb Thumb-2 dostarcza pelen zestaw instrukcji i tryb ARM nie jest juz konieczny, np. aby "dostac" sie do rejestru CPSR.

Dla AVR lub 8051 to było proste. Oficjalnie było podane jak wygląda instrukcja, ile zajmuje miejsca w pamieci oraz co z jej parametrami. A tu tak jakby ktos to ukrywal.

A z tego co piszecie to Cortex-M0 i Cortex-M3 używaja po prostu instrukcji Thumb-2, nie maja instrukcji ARM 32-bitowych oraz zwyklych Thumb. A roznica miedzy M0 a M3 polega na mniejszej ilosci instrukcji, ktore sa 16-bitowe.

Czy tak, czy znowu cos pomieszalem?

Dla AVR lub 8051 to było proste. Oficjalnie było podane jak wygląda instrukcja, ile zajmuje miejsca w pamieci oraz co z jej parametrami. A tu tak jakby ktos to ukrywal.

A z tego co piszecie to Cortex-M0 i Cortex-M3 używaja po prostu instrukcji Thumb-2, nie maja instrukcji ARM 32-bitowych oraz zwyklych Thumb. A roznica miedzy M0 a M3 polega na mniejszej ilosci instrukcji, ktore sa 16-bitowe.

Czy tak, czy znowu cos pomieszalem?

Dla AVR lub 8051 to było proste. Oficjalnie było podane jak wygląda instrukcja, ile zajmuje miejsca w pamieci oraz co z jej parametrami. A tu tak jakby ktos to ukrywal.

A z tego co piszecie to Cortex-M0 i Cortex-M3 używaja po prostu instrukcji Thumb-2, nie maja instrukcji ARM 32-bitowych oraz zwyklych Thumb. A roznica miedzy M0 a M3 polega na mniejszej ilosci instrukcji, ktore sa 16-bitowe.

Czy tak, czy znowu cos pomieszalem?

Dla AVR lub 8051 to było proste. Oficjalnie było podane jak wygląda instrukcja, ile zajmuje miejsca w pamieci oraz co z jej parametrami. A tu tak jakby ktos to ukrywal.

A z tego co piszecie to Cortex-M0 i Cortex-M3 używaja po prostu instrukcji Thumb-2, nie maja instrukcji ARM 32-bitowych oraz zwyklych Thumb. A roznica miedzy M0 a M3 polega na mniejszej ilosci instrukcji, ktore sa 16-bitowe.

Czy tak, czy znowu cos pomieszalem?

[...]

Na razie masz czkawkę...

czyli namieszalem????? i to pozadnie?

A mozesz jakos to upozadkowac? Wiem ze powiesz ze jest opisane, ale nie mam sie gdzie zapytac i nie daje mi to spokoju.

czyli namieszalem????? i to pozadnie?

A mozesz jakos to upozadkowac? Wiem ze powiesz ze jest opisane, ale nie mam sie gdzie zapytac i nie daje mi to spokoju.

czyli namieszalem????? i to pozadnie?

A mozesz jakos to upozadkowac? Wiem ze powiesz ze jest opisane, ale nie mam sie gdzie zapytac i nie daje mi to spokoju.

Podałem ci linki do zestawów instrukcji CM3 i MM0. Przeczytałeś to chociaż?

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required