ARM ARM7TDMI Manuel d'utilisateur

Naviguer en ligne ou télécharger Manuel d'utilisateur pour Processeurs ARM ARM7TDMI. Cortex®-M3 processor software development for ARM7TDMI Manuel d'utilisatio

  • Télécharger
  • Ajouter à mon manuel
  • Imprimer
  • Page
    / 18
  • Table des matières
  • MARQUE LIVRES
  • Noté. / 5. Basé sur avis des utilisateurs
Vue de la page 0
ARM Cortex-M3 Processor Software
Development for ARM7TDMI
Processor Programmers
Joseph Yiu and Andrew Frame July 2009
Overview
Since its introduction in 2006, the ARM® Cortex-M3 processor has been adopted by an increasing
number of embedded developers. Many of these developers have been developing MCUs based on
the ARM7TDMI® processor and now, realizing the additional benefits that the Cortex-M3 processor
gives them, are planning to migrate their software from the ARM7TDMI processor to the Cortex-M3
processor.
This article details some of the typical modifications that may be required to port code from the
ARM7TDMI processor to the Cortex-M3 processor as the architectural differences between the two
processors could mean that some software designed for the ARM7TDMI processor may need to be
modified or recompiled in order to execute more efficiently on, or take advantage of, some of the
advanced features of the Cortex-M3 processor.
The Cortex-M3 processor design has some innovative and much improved features and capabilities
when compared with the ARM7TDMI processor. These new features enable developers to easily port
the code and create more optimized code at the same time.
Benefits of porting from the ARM7TDMI to Cortex-M3
The richer instruction set and improved efficiency of the Cortex-M3 Thumb instruction set architecture
(ISA) technology enables more optimized program code to be generated alongside other code saving
advantages including;
Existing ARM7TDMI ARM code size will be significantly reduced as the overhead for
switching between ARM state and Thumb state is removed,
The need for exception handler wrappers in assembler is eliminated, and
Bit field operations and I/O operations can be simplified with the new bit field
manipulation instructions and bit band features.
Since the Cortex-M3 processor can finish a task quicker than an ARM7TDMI, more time can be spent
in sleep mode, reducing the active power of the system and thereby enabling better system
performance and energy efficiency. Alternatively the higher performance can be used to implement
more advanced application features.
Vue de la page 0
1 2 3 4 5 6 ... 17 18

Résumé du contenu

Page 1 - Processor Programmers

ARM Cortex-M3 Processor Software Development for ARM7TDMI Processor Programmers Joseph Yiu and Andrew Frame July 2009 Overview Since its intro

Page 2

[10] LDMDB R0!, {R1-R4} ; Read 4 words from memory address indicated by R0, pre-decrement R0 STMDB R0!, {R1,R4,R6} ; Write 3 words

Page 3

[11] In ARM7TDMI processor assembler code accesses to the CPSR are required to switch between the different processor modes. In the simpler Cortex-

Page 4

[12] Operation ARM7TDMI software (assembly and C) Porting to Cortex-M3 software (FIQ replaced by exception priority model) Enable IRQ MRS R0, CPS

Page 5

[13] To port assembler code from ARM code to Cortex-M3 Thumb code, some of the branch and conditional branch instructions will need modification to

Page 6

[14] In most applications, the fault handler might just reset the system itself or restart the offending process if it is running an operating syst

Page 7

[15] PART C: Modifications for projects with Embedded OS and 3rd party libraries For software developed for the ARM7TDMI with an embedded OS, the e

Page 8

[16] Appendix A C code vector table example. Exception vector table in C typedef void(* const ExecFuncPtr)(void) __irq; /* Linker-generated Stack

Page 9

[17] exceptions.o (exceptions_area, +FIRST) } … Further examples can be found in the examples of RealView Development Suite installation (Co

Page 10

[18] void SVCHandler_main(unsigned int * svc_args) { unsigned int svc_number; /* * Stack contains: * r0, r1, r2, r3, r12, r14, the return address a

Page 11

[2] The switch to Cortex-M3 also makes software development easier because the Cortex-M3 processor includes a comprehensive set of debug and trace

Page 12

[3] Idiom recognitions and intrinsic functions on C source code The Cortex-M3 processor provides a number of special instructions to increase the p

Page 13

[4] Modification Scenarios The modifications required to enable ARM7TDMI processor software to run on a Cortex-M3 processor will depend on the comp

Page 14

[5] PART A: Modifications for simple cases C code It is recommended that all C code be recompiled so that it can be both optimized for the more pow

Page 15

[6] B IRQ_Handler B FIQ_Handler Reset_Handler ; Setup Stack for each mode LDR R0,=Stack_Top MSR CPSR_c, #Mode_IRQ:OR:I

Page 16

[7] priority grouping (PRIGROUP) field. This allows the priority field in each priority register to be divided into pre-empt priority and sub-prior

Page 17

[8] PART B: Modifications for projects with assembler code Projects with mixed C and assembler code may require additional modifications due to dif

Page 18

[9] Swap (SWP) and Swap Byte (SWPB) instructions The SWP and SWPB instructions are used for atomic memory accesses, usually for semaphores or mutex

Commentaires sur ces manuels

Pas de commentaire