ÿþR e a l - t i m e p r o c e s s i n g w i t h t h e P h i l i p s L P C A R M
m i c r o c o n t r o l l e r ; u s i n g G C C a n d t h e M i c r o C / O S - I I R T O S .
P h i l i p s 0 5 : P r o j e c t N u m b e r A R 1 8 0 3
D . W . H a w k i n s ( d w h @ o v r o . c a l t e c h . e d u )
M a y 1 0 , 2 0 0 6
C o n t e n t s
1 I n t r o d u c t i o n 3
2 P r o g r a m m e r s M o d e l 4
3 A R M G C C 6
3 . 1 E x a m p l e 1 : B a s i c s t a r t u p a s s e m b l e r . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3 . 2 E x a m p l e 2 : A s i m p l e C p r o g r a m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3 . 3 E x a m p l e s 3 ( a ) a n d ( b ) : C p r o g r a m s t a c k s e t u p . . . . . . . . . . . . . . . . . . . . . 9
3 . 4 E x a m p l e s 4 ( a ) , ( b ) , a n d ( c ) : C p r o g r a m s w i t h . b s s , . d a t a , a n d . r o d a t a s e c t i o n s . . 1 3
3 . 5 E x a m p l e 5 : L P C 2 1 3 8 p r o c e s s o r i n i t i a l i z a t i o n . . . . . . . . . . . . . . . . . . . . . . 1 9
3 . 5 . 1 P L L s e t u p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 9
3 . 5 . 2 M A M s e t u p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2
3 . 5 . 3 S t a c k s s e t u p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2
3 . 6 E x a m p l e 6 : E x c e p t i o n h a n d l i n g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 5
3 . 7 E x a m p l e 7 : I / O p i n t o g g l i n g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 8
3 . 8 E x a m p l e 8 : I n t e r r u p t c o n t e x t s a v e / r e s t o r e b e n c h m a r k i n g . . . . . . . . . . . . . . . 3 0
3 . 9 E x a m p l e 9 : M u l t i p l e i n t e r r u p t s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2
3 . 1 0 E x a m p l e 1 0 : I n t e r r u p t n e s t i n g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 5
4 µ C O S - I I R T O S 3 9
4 . 1 A R M - G C C p o r t d e s c r i p t i o n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 9
4 . 1 . 1 P o r t h e a d e r ; o s c p u . h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1
4 . 1 . 2 P o r t C - f u n c t i o n s ; o s c p u c . c . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1
4 . 1 . 3 P o r t a s s e m b l e r - f u n c t i o n s ; o s c p u a . s . . . . . . . . . . . . . . . . . . . . . . 4 1
4 . 1 . 4 B o a r d - s u p p o r t p a c k a g e ; B S P . H , . C . . . . . . . . . . . . . . . . . . . . . . . . 4 2
4 . 2 P o r t t e s t i n g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3
4 . 2 . 1 T e s t 1 : T a s k - t o - I R Q c o n t e x t s w i t c h i n g . . . . . . . . . . . . . . . . . . . . . . 4 3
4 . 2 . 2 T e s t 2 : T a s k - t o - t a s k c o n t e x t s w i t c h i n g . . . . . . . . . . . . . . . . . . . . . . 4 4
4 . 2 . 3 T e s t 3 : I R Q - F I Q i n t e r r u p t n e s t i n g . . . . . . . . . . . . . . . . . . . . . . . . 4 4
4 . 2 . 4 T e s t 4 : I R Q i n t e r r u p t n e s t i n g . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4
4 . 3 u C O S - I I e x a m p l e s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 9
4 . 3 . 1 E x a m p l e 1 : B l i n k i n g L E D s . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 9
4 . 3 . 2 E x a m p l e 2 : S e r i a l p o r t e c h o c o n s o l e . . . . . . . . . . . . . . . . . . . . . . . 4 9
A A R M G C C 5 0
A . 1 B u i l d p r o c e d u r e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 0
2
A R 1 8 0 3 M a y 1 0 , 2 0 0 6
1 I n t r o d u c t i o n
T h e A R M p r o c e s s o r i s a r e d u c e d i n s t r u c t i o n s e t c o m p u t e r ( R I S C ) i n t e l l e c t u a l p r o p e r t y ( I P ) c o r e
d e f i n e d b y A d v a n c e d R I S C M a c h i n e s , L t d ( A R M ) . T h e A R M C P U a r c h i t e c t u r e s w i d e l y a v a i l a b l e
t o d a y a r e b a s e d o n t h e v e r s i o n 4 a n d 5 a r c h i t e c t u r e s [ 1 2 ] . A R M p r o c e s s o r c o r e s a r e u s e d b y I n -
t e l ( S t r o n g A R M a n d X S c a l e p r o c e s s o r s ) , S h a r p , A t m e l , P h i l i p s , A n a l o g D e v i c e s , a n d m a n y o t h e r
s e m i c o n d u c t o r m a n u f a c t u r e r s .
T h e A R M p r o c e s s o r c a n o p e r a t e w i t h t w o i n s t r u c t i o n s e t s ; A R M m o d e , a n d T H U M B m o d e . T h e
A R M m o d e u s e s a 3 2 - b i t i n s t r u c t i o n s e t , w h i l e T H U M B m o d e u s e s a 1 6 - b i t i n s t r u c t i o n s e t . T h e u s e
o f T H U M B m o d e r e d u c e s t h e e x e c u t i o n s p e e d o f t h e c o d e , b u t r e d u c e s t h e m e m o r y r e q u i r e m e n t s o f
t h e c o d e , s o f i n d s u s e i n t h e m i c r o c o n t r o l l e r a p p l i c a t i o n s o f t h e p r o c e s s o r c o r e .
µ C O S - I I i s a r e a l - t i m e o p e r a t i n g s y s t e m ( R T O S ) w r i t t e n b y J e a n L a b r o s s e a n d s u p p o r t e d b y h i s
c o m p a n y M i c r i u m . T h e R T O S i s w e l l d e s c r i b e d i n h i s b o o k [ 6 ] . T h e R T O S d e f i n e s a s t a n d a r d s e t o f
o p e r a t i n g s y s t e m ( O S ) p r i m i t i v e s a n d t h e b o o k d e f i n e s h o w t o p o r t t h e R T O S t o d i f f e r e n t p r o c e s s o r
a r c h i t e c t u r e s . T h i s d o c u m e n t d e s c r i b e s a p o r t f o r t h e A R M p r o c e s s o r o p e r a t i n g i n 3 2 - b i t m o d e f o r
t h e G N U G C C c o m p i l e r .
T h e f o l l o w i n g r e f e r e n c e s p r o v i d e a d d i t i o n a l r e s o u r c e s o n A R M p r o c e s s o r s a n d µ C O S - I I R T O S :
" A R M s y s t e m - o n - c h i p a r c h i t e c t u r e , S . F u r b e r [ 5 ] .
" A R M A r c h i t e c t u r e R e f e r e n c e M a n u a l , D . S e a l [ 1 2 ] . C h a p t e r s A 1 a n d A 2 p r o v i d e a n o v e r v i e w
o f t h e A R M a r c h i t e c t u r e a n d p r o g r a m m i n g m o d e l .
" A R M S y s t e m D e v e l o p e r s G u i d e , A . S l o s s e t a l [ 1 3 ]
" M i c r o C / O S - I I : T h e r e a l - t i m e k e r n e l , J . L a b r o s s e [ 6 ] .
A u t h o r s N o t e : M a y 1 0 , 2 0 0 6 .
T h i s d o c u m e n t a n d t h e a s s o c i a t e d c o d e w e r e s u b m i t t e d t o t h e C i r c u i t C e l l a r P h i l i p s A R M 2 0 0 5
c o n t e s t . T h e p r o j e c t w a s s e l e c t e d f o r a D i s t i n c t i v e E x c e l l e n c e a w a r d . A t s o m e p o i n t C i r c u i t C e l l a r
a r e g o i n g t o p u t t h e p r o j e c t f i l e s u p o n t h e i r w e b s i t e .
P r i o r t o t h e A R M 2 0 0 5 c o n t e s t I d n e v e r u s e d t h e A R M p r o c e s s o r . M y i n i t i a l o b j e c t i v e w a s t o
u n d e r s t a n d t h e c o d e g e n e r a t e d a n d r e q u i r e d b y G C C t o l i n k m i c r o c o n t r o l l e r a p p l i c a t i o n s , a n d t h e n
u s e t h a t k n o w l e d g e t o p o r t t h e u C O S - I I R T O S t o t h e p r o c e s s o r . I d p l a y e d w i t h t h e A t m e l A V R
a n d W i n A V R f o r t h e C i r c u i t C e l l a r A t m e l A V R 2 0 0 4 c o n t e s t , b u t h a d s i m p l y u s e d W i n A V R , n o t
a p p r e c i a t i n g t h e t a s k d o n e b y t h e s t a r t u p f i l e s a n d t h e A V R s t a n d a r d l i b r a r y . M a n y o f t h e e x a m p l e s
i n t h i s p r o j e c t a r e s t a n d - a l o n e , i n t h a t t h e c o d e p r o v i d e s t h e s t a r t - u p r o u t i n e s a n d t h e a p p l i c a t i o n
c o d e ( s o m e o f t h e c o d e i n s u b f o l d e r s i s r e p e a t e d f o r t h e s a k e o f s i m p l i f i c a t i o n ) .
P l e a s e e x c u s e t h e p o o r m a k e f i l e s a n d a n y t h i n g e l s e y o u f i n d o v e r - s i m p l i f i e d , I w a s j u s t p l a y i n g
a n d d i d n t r e a l l y a n t i c i p a t e t o o m a n y p e o p l e l o o k i n g a t t h e c o d e . H o w e v e r , i t s e e m s a l o t o f t h e
q u e s t i o n s a s k e d o n t h e L P C 2 0 0 0 n e w s g r o u p c o u l d b e a n s w e r e d b y t h i s d o c u m e n t , s o f e e l f r e e t o
p r o v i d e f e e d b a c k , o r m o d i f i e d c o d e , a n d I l l u p d a t e t h e o r i g i n a l s o u r c e a n d r e - r e l e a s e t h e c o d e a s i t
i s u p d a t e d . I p l a n t o g o t h o u g h a n d a d d m o r e s e c t i o n s , a n d g e t n e w l i b - l p c u p - a n d - r u n n i n g , b u t f o r
n o w , t h i s w i l l h a v e t o d o .
F e e l f r e e t o p o s t c o m m e n t s t o t h e L P C 2 0 0 0 n e w s g r o u p , I r e a d i t .
C h e e r s ,
D a v e H a w k i n s , C a l t e c h .
d w h @ o v r o . c a l t e c h . e d u .
3
A R 1 8 0 3 M a y 1 0 , 2 0 0 6
P r i v i l e g e d m o d e s
E x c e p t i o n m o d e s
U s e r S y s t e m S u p e r v i s o r I R Q F I Q A B O R T U N D E F I N E D
R 0 R 0 R 0 R 0 R 0 R 0 R 0
R 1 R 1 R 1 R 1 R 1 R 1 R 1
R 2 R 2 R 2 R 2 R 2 R 2 R 2
R 3 R 3 R 3 R 3 R 3 R 3 R 3
R 4 R 4 R 4 R 4 R 4 R 4 R 4
R 5 R 5 R 5 R 5 R 5 R 5 R 5
R 6 R 6 R 6 R 6 R 6 R 6 R 6
R 7 R 7 R 7 R 7 R 7 R 7 R 7
R 8 R 8 R 8 R 8 R 8 _ f i q R 8 R 8
R 9 R 9 R 9 R 9 R 9 _ f i q R 9 R 9
R 1 0 R 1 0 R 1 0 R 1 0 R 1 0 _ f i q R 1 0 R 1 0
R 1 1 R 1 1 R 1 1 R 1 1 R 1 1 _ f i q R 1 1 R 1 1
R 1 2 R 1 2 R 1 2 R 1 2 R 1 2 _ f i q R 1 2 R 1 2
R 1 3 ( S P ) R 1 3 ( S P ) R 1 3 _ s v c ( S P ) R 1 3 _ i r q ( S P ) R 1 3 _ f i q ( S P ) R 1 3 _ a b t ( S P ) R 1 3 _ u n d ( S P )
R 1 4 ( L R ) R 1 4 ( L R ) R 1 4 _ s v c ( L R ) R 1 4 _ i r q ( L R ) R 1 4 _ f i q ( L R ) R 1 4 _ a b t ( L R ) R 1 4 _ u n d ( L R )
R 1 5 ( P C ) R 1 5 ( P C ) R 1 5 ( P C ) R 1 5 ( P C ) R 1 5 ( P C ) R 1 5 ( P C ) R 1 5 ( P C )
C P S R C P S R C P S R C P S R C P S R C P S R C P S R
S P S R _ s v c S P S R _ i r q S P S R _ f i q S P S R _ a b t S P S R _ u n d
F i g u r e 1 : A R M p r o g r a m m i n g m o d e s . I n A R M - m o d e t h e p r o c e s s o r c a n s w i t c h b e t w e e n s e v e n
o p e r a t i n g m o d e s . T h e p r o c e s s o r h a s a s e t o f b a n k e d r e g i s t e r s , i . e . , t h e a c t u a l r e g i s t e r a n i n s t r u c t i o n
a c c e s s e s i s d e p e n d e n t o n t h e o p e r a t i n g m o d e . T h e g r e y e d r e g i s t e r s i n t h e f i g u r e s h o w t h e p h y s i c a l l y
d i f f e r e n t r e g i s t e r s i n e a c h o p e r a t i n g m o d e .
2 P r o g r a m m e r s M o d e l
F i g u r e 1 s h o w s t h e A R M p r o g r a m m i n g m o d e l ( C h a p t e r A 2 [ 1 2 ] , p 3 9 [ 5 ] , p 7 [ 7 ] ) , a n d t h e s e v e n A R M
o p e r a t i n g m o d e s . A g e n e r a l p u r p o s e o p e r a t i n g s y s t e m s u c h a s L i n u x u s e s t h e U s e r m o d e o f t h e
p r o c e s s o r f o r u s e r - s p a c e p r o c e s s e s , a n d t h e S u p e r v i s o r m o d e f o r t h e o p e r a t i n g s y s t e m k e r n e l . F o r a
r e a l - t i m e O S , s u c h a s µ C O S - I I , t h e k e r n e l a n d a p p l i c a t i o n t a s k s r u n i n S u p e r v i s o r m o d e . E x c e p t i o n
m o d e s n e e d t o b e d e a l t w i t h a p p r o p r i a t e l y i n e i t h e r a g e n e r a l p u r p o s e O S ( b y k e r n e l r o u t i n e s ) o r
i n a n R T O S . T h e s e v e n p r o c e s s o r m o d e s a r e ( p A 2 - 3 [ 1 2 ] , p A 2 - 1 1 [ 1 2 ] h a s t h e 5 - b i t v a l u e s f o r e a c h
m o d e ) ;
M o d e D e s c r i p t i o n
U s e r N o r m a l p r o g r a m e x e c u t i o n c o d e
S y s t e m R u n s p r i v i l e g e d o p e r a t i n g s y s t e m t a s k s
S u p e r v i s o r A p r o t e c t e d m o d e f o r t h e o p e r a t i n g s y s t e m
I R Q G e n e r a l - p u r p o s e i n t e r r u p t h a n d l i n g
F I Q F a s t - i n t e r r u p t h a n d l i n g
A b o r t U s e d t o i m p l e m e n t v i r t u a l m e m o r y o r m e m o r y p r o t e c t i o n
U n d e f i n e d S u p p o r t s s o f t w a r e e m u l a t i o n o f c o p r o c e s s o r s
I n a n y o f t h e s e v e n o p e r a t i n g m o d e s s h o w n i n F i g u r e 1 , c o d e h a s a c c e s s t o 1 6 g e n e r a l - p u r p o s e
r e g i s t e r s , R 0 t h r o u g h R 1 5 , a n d a c u r r e n t p r o g r a m s t a t u s r e g i s t e r ( C P S R ) . I n e x c e p t i o n m o d e s t h e r e
i s a n a d d i t i o n a l r e g i s t e r , c a l l e d t h e s a v e d p r o g r a m s t a t u s r e g i s t e r ( S P S R ) , w h i c h h a s i d e n t i c a l b i t s
t o t h e C P S R . T h e p r o c e s s o r h a s a s e t o f b a n k e d r e g i s t e r s , w h e r e d e p e n d e n t o n t h e o p e r a t i n g m o d e
4
A R 1 8 0 3 M a y 1 0 , 2 0 0 6
3 1 3 0 2 9 2 8 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 1 9 1 8 1 7 1 6 1 5 1 4 1 3 1 2 1 1 1 0 9 8 7 6 5 4 3 2 1 0
N Z C V I F T M 4 M 3 M 2 M 1 M 0
F L A G S S T A T U S E X T E N S I O N C O N T R O L
F i g u r e 2 : C o n t r o l a n d p r o g r a m s t a t u s r e g i s t e r ( C P S R ) b i t s . T h e d e f i n e d b i t s a r e t h e f l a g s ; n e g a t i v e ,
z e r o , c a r r y , a n d o v e r f l o w , a n d t h e c o n t r o l b i t s ; I R Q d i s a b l e , F I Q d i s a b l e , A R M / T H U M B i n s t r u c t i o n
m o d e , a n d t h e 5 - b i t p r o c e s s o r o p e r a t i n g m o d e ( w h e r e t h e m o d e s a r e s h o w n i n F i g u r e 1 ) .
t h e p h y s i c a l r e g i s t e r a c c e s s e d c a n b e d i f f e r e n t . F o r e x a m p l e i n f a s t i n t e r r u p t m o d e ( F I Q ) r e g i s t e r s
R 8 t h r o u g h R 1 4 a r e u n i q u e f o r t h a t m o d e s o d o n o t n e e d s a v i n g t h r o u g h i n t e r r u p t c o n t e x t s w i t c h e s .
R e g i s t e r R 1 3 i s c o n v e n t i o n a l l y u s e d a s t h e S t a c k P o i n t e r ( p A 2 - 6 [ 1 2 ] ) , w h i l e r e g i s t e r s R 1 4 a n d R 1 5
h a v e s p e c i a l r o l e s a s t h e L i n k R e g i s t e r ( r e t u r n a d d r e s s ) , a n d P r o g r a m C o u n t e r ( p A 1 - 3 [ 1 2 ] ) . T h e
A R M p r o c e d u r e c a l l i n g s t a n d a r d ( A P C S ) d e f i n e s t h e r e c o m m e n d e d u s e o f t h e o t h e r r e g i s t e r s f o r
p a s s i n g a r g u m e n t s a n d r e t u r n v a r i a b l e s .
S t a c k p o i n t e r
T h e s t a c k g r o w s f r o m h i g h - t o - l o w .
L i n k r e g i s t e r
T h e l i n k r e g i s t e r h o l d s t h e a d d r e s s o f t h e n e x t i n s t r u c t i o n a f t e r a B r a n c h a n d L i n k ( B L ) i n s t r u c t i o n
w h i c h i s t h e i n s t r u c t i o n u s e d t o m a k e a s u b r o u t i n e c a l l . A t a l l o t h e r t i m e s , R 1 4 c a n b e u s e d a s a
g e n e r a l - p u r p o s e r e g i s t e r ( p A 1 - 3 [ 1 2 ] ) . T o r e t u r n f r o m a s u b r o u t i n e c a l l , t h e l i n k r e g i s t e r i s c o p i e d
i n t o t h e p r o g r a m c o u n t e r r e g i s t e r ( p A 1 - 4 [ 1 2 ] ) . I f n e s t e d o f i n t e r r u p t s i s u s e d , s p e c i a l c a r e o f t h e
l i n k r e g i s t e r c o n t e n t s i s r e q u i r e d ( p A 2 - 6 [ 1 2 ] ) .
P r o g r a m c o u n t e r
W h e n a n i n s t r u c t i o n r e a d s t h e p r o g r a m c o u n t e r , t h e v a l u e r e a d i s t h e a d d r e s s o f t h e i n s t r u c t i o n p l u s
8 ( 4 b y t e s i f o p e r a t i n g i n T H U M B m o d e ) . T h e p r o g r a m c o u n t e r i s 3 2 - b i t a l i g n e d ( b i t s 1 a n d 0 a r e
a l w a y s z e r o ) i n A R M m o d e , a n d 1 6 - b i t a l i g n e d i n T H U M B m o d e ( b i t 0 i s z e r o ) ( p A 1 - 3 [ 1 2 ] ) .
S t a t u s r e g i s t e r s
T h e C P S R ( a n d S P S R ) c o n t a i n s f o u r s e c t i o n s ; f l a g s , s t a t u s , e x t e n s i o n , a n d c o n t r o l . T h e s e s e c t i o n s
a n d b i t s a r e s h o w n i n F i g u r e 2 . T h e r e a r e s p e c i f i c i n s t r u c t i o n s f o r t r a n s f e r r i n g t h e s t a t u s r e g i s t e r s
t o a n d f r o m t h e g e n e r a l p u r p o s e r e g i s t e r s .
5
A R 1 8 0 3 M a y 1 0 , 2 0 0 6
3 A R M G C C
A n e m b e d d e d s y s t e m s C - c o d e d a p p l i c a t i o n c o n s i s t s o f a s s e m b l y - c o d e d s t a r t u p c o d e c o n t a i n i n g
p r o c e s s o r a n d r u n - t i m e e n v i r o n m e n t ( e g . s t a c k s ) i n i t i a l i z a t i o n , t h e C - c o d e d a p p l i c a t i o n , s t a t i c a l l y -
l i n k e d l i b r a r y c o d e ( n e w l i b a n d u s e r l i b r a r i e s ) , a n d a l i n k e r s c r i p t d e f i n i n g t h e d e v i c e m e m o r y m a p
a n d c o d e l o a d a n d r u n a d d r e s s e s . T h e G N U C o m p i l e r C o l l e c t i o n ( G C C ) f o r t h e A R M p r o c e s s o r c a n
b e d o w n l o a d e d f r o m w w w . g n u a r m . c o m , o r c a n b e b u i l t f r o m s o u r c e a s d e s c r i b e d i n A p p e n d i x A . T h e
f o l l o w i n g s e c t i o n s w a l k - t h r o u g h i n c r e a s i n g l y c o m p l e x e x a m p l e s t o d e m o n s t r a t e t h e G C C t o o l s .
T h e e x a m p l e s i n t h e f o l l o w i n g s e c t i o n s a r e d e v e l o p e d f o r a K e i l M C B 2 1 3 0 d e v e l o p m e n t b o a r d
c o n t a i n i n g a P h i l i p s L P C 2 1 3 8 A R M m i c r o c o n t r o l l e r . T h e K e i l M C 2 1 3 0 e v a l u a t i o n b o a r d c o n t a i n s a
s e t o f L E D s c o n n e c t e d t o p i n s P 1 . [ 1 6 . . 2 3 ] . T h e e x a m p l e s u s e t h e L E D s t o p r o v i d e v i s u a l f e e d b a c k
t h a t t h e e x a m p l e p r o g r a m o p e r a t e s c o r r e c t l y .
3 . 1 E x a m p l e 1 : B a s i c s t a r t u p a s s e m b l e r
/ " e x 1 . s "/
/ " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
" E x c e p t i o n v e c t o r s
" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
"/
. t e x t
. a r m
. g l o b a l s t a r t
s t a r t :
/ " V e c t o r s ( 8 t o t a l ) "/
b r e s e t / " r e s e t "/
b l o o p / " u n d e f i n e d i n s t r u c t i o n "/
b l o o p / " s o f t w a r e i n t e r r u p t "/
b l o o p / " p r e f e t c h a b o r t "/
b l o o p / " d a t a a b o r t "/
n o p / " r e s e r v e d f o r t h e b o o t l o a d e r c h e c k s u m "/
b l o o p / " I R Q "/
b l o o p / " F I Q "/
/ " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
" T e s t c o d e
" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
"/
r e s e t :
l d r r 0 , I O D I R 1
l d r r 1 , I O D I R 1 V A L U E
s t r r 1 , [ r 0 ]
l d r r 0 , I O C L R 1
s t r r 1 , [ r 0 ]
l d r r 0 , I O S E T 1
l d r r 1 , I O S E T 1 V A L U E
s t r r 1 , [ r 0 ]
l o o p : b l o o p
6
A R 1 8 0 3 M a y 1 0 , 2 0 0 6
/ " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
" C o n s t a n t s
" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
"/
/ " L E D c o n t r o l r e g i s t e r s "/
I O S E T 1 : . w o r d 0 x E 0 0 2 8 0 1 4
I O D I R 1 : . w o r d 0 x E 0 0 2 8 0 1 8
I O C L R 1 : . w o r d 0 x E 0 0 2 8 0 1 C
I O D I R 1 V A L U E : . w o r d 0 x 0 0 F F 0 0 0 0
I O S E T 1 V A L U E : . w o r d 0 x 0 0 5 5 0 0 0 0
. e n d
E x a m p l e 1 i s a s h o r t a s s e m b l e r p r o g r a m t h a t s e t s u p b a s i c e x c e p t i o n v e c t o r s ( t h e y d r o p i n t o a n
i n f i n i t e l o o p ) , a n d t h e n t u r n s t h e M C B 2 1 3 0 e v e n L E D s o n ( w h e r e i n d e x i n g i s L E D [ 7 : 0 ] ) a n d t h e
o d d L E D s o f f ( a h i g h v a l u e o n a n I / O p i n t u r n s a n L E D o n ) . T h e e x a m p l e d o e s n o t s e t u p s t a c k s
( s i n c e w e d o n o t n e e d t h e m ) . T h e s u c c e s s f u l c o m p i l a t i o n a n d d o w n l o a d o f t h i s e x a m p l e c h e c k s t h e
c o m p i l e r a n d l i n k e r s e t u p .
A l i n k e r s c r i p t i s u s e d t o d e f i n e t h e m e m o r y m a p o f a p r o c e s s o r . I f G C C i s n o t p a s s e d a l i n k e r
s c r i p t a s p a r t o f t h e c o m m a n d l i n e a r g u m e n t s , a d e f a u l t l i n k e r s c r i p t i s u s e d . T h e l i n k e r s c r i p t
c a n b e d i s p l a y e d b y p a s s i n g - W l , - - v e r b o s e t o a r m - e l f - g c c o r - - v e r b o s e t o a r m - e l f - l d . T h e
d e f a u l t l i n k e r s c r i p t d e f i n e s a n e n t r y p o i n t s y m b o l c a l l e d _ s t a r t a n d l o a d s t o a d e f a u l t a d d r e s s o f
0 x 8 0 0 0 . T h e e x a m p l e a s s e m b l e r p r o g r a m u s e s t h e e x p e c t e d e n t r y s y m b o l _ s t a r t , a n d s i n c e t h e
P h i l i p s L P C m i c r o c o n t r o l l e r r e s e t v e c t o r i s a d d r e s s 0 , a c o m m a n d l i n e o p t i o n , - T t e x t = 0 , i s n e e d e d
t o l i n k t h e . t e x t s e c t i o n t o a d d r e s s 0 ( n o t e t h a t t h i s j u s t o v e r r i d e s t h e l i n k e r s c r i p t . t e x t s e c t i o n
s t a r t a d d r e s s , i t d o e s n o t r e p l a c e t h e l i n k e r s c r i p t ) . T h e e x a m p l e n e e d s t o s e t u p t h e e x c e p t i o n
v e c t o r t a b l e c o r r e c t l y , a s t h e P h i l i p s L P C m i c r o c o n t r o l l e r e x p e c t s t h e r e s e r v e d e x c e p t i o n v e c t o r ( t h e
o l d 2 6 - b i t A R M p r o c e s s o r a d d r e s s e x c e p t i o n ) t o c o n t a i n a c h e c k s u m w o r d . T h e P h i l i p s F l a s h U t i l s
d o w n l o a d e r f i l l s i n t h i s c h e c k s u m .
T h e e x a m p l e i s c o m p i l e d u s i n g
a r m - e l f - g c c - m c p u = a r m 7 t d m i - c e x 1 . s
a n d i s l i n k e d u s i n g
a r m - e l f - l d - T t e x t = 0 e x 1 . o - o e x 1 . e l f
T h e l i n k e r - T o p t i o n l i n k s t h e c o d e s t a r t i n g a t p h y s i c a l a d d r e s s 0 .
T h e c o m p i l a t i o n a n d l i n k s t e p c a n b e c o m b i n e d u s i n g
a r m - e l f - g c c - m c p u = a r m 7 t d m i - n o s t a r t f i l e s - T t e x t = 0 e x 1 . s - o e x 1 . e l f
T h e - n o s t a r t f i l e s o p t i o n t e l l s t h e c o m p i l e r n o t t o u s e i t s s t a r t u p a s s e m b l e r r o u t i n e .
T h e e x e c u t a b l e c a n b e d i s a s s e m b l e d u s i n g
a r m - e l f - o b j d u m p - d e x 1 . e l f
w h i c h s i m p l y s h o w s t h e o r i g i n a l s o u r c e . T h e d i s a s s e m b l e d c o d e c o v e r s a d d r e s s e s 0 t h r o u g h 5 4 h
( i n c l u s i v e ) , i . e . , 5 8 h b y t e s = 8 8 b y t e s . T h e a m o u n t o f F l a s h a n d S R A M n e e d e d b y a p r o g r a m c a n
b e s u m m a r i z e d u s i n g
a r m - e l f - s i z e e x 1 . e l f
t e x t d a t a b s s d e c h e x f i l e n a m e
8 8 0 0 8 8 5 8 e x 1 . e l f
7
A R 1 8 0 3 M a y 1 0 , 2 0 0 6
A k e y p o i n t t o n o t e a b o u t t h i s e x a m p l e i s t h a t t h e r e i s o n l y a t e x t s e c t i o n , i . e . , t h e e x a m p l e w i l l
o n l y u s e F l a s h R A M .
T h e F l a s h U t i l s d o w n l o a d e r e x p e c t s a n I n t e l h e x f o r m a t f i l e . T h i s f i l e i s c r e a t e d u s i n g
a r m - e l f - o b j c o p y - O i h e x e x 1 . e l f e x 1 . h e x
S t a r t L P C 2 1 0 x _ I S P . e x e a n d d o w n l o a d t h e p r o g r a m ; t h e e v e n L E D s s h o u l d b e o n , t h e o d d o f f ( L E D [ 0 ]
i s c l o s e s t t o t h e c o r n e r o f t h e b o a r d ) .
3 . 2 E x a m p l e 2 : A s i m p l e C p r o g r a m
T h e f o l l o w i n g s t a r t u p r o u t i n e s e t s u p e x c e p t i o n v e c t o r s , w i t h t h e r e s e t v e c t o r j u m p i n g d i r e c t l y t o
t h e C c o d e d m a i n a p p l i c a t i o n
/ " e x 2 s t a r t . s "/
. t e x t
. a r m
. g l o b a l m a i n
. g l o b a l s t a r t
s t a r t :
/ " V e c t o r s ( 8 t o t a l ) "/
l d r p c , m a i n a d d r / " r e s e t "/
l d r p c , l o o p a d d r / " u n d e f i n e d i n s t r u c t i o n "/
l d r p c , l o o p a d d r / " s o f t w a r e i n t e r r u p t "/
l d r p c , l o o p a d d r / " p r e f e t c h a b o r t "/
l d r p c , l o o p a d d r / " d a t a a b o r t "/
n o p / " r e s e r v e d f o r t h e b o o t l d r c h e c k s u m "/
l d r p c , l o o p a d d r / " I R Q "/
l d r p c , l o o p a d d r / " F I Q "/
l o o p a d d r : . w o r d l o o p
m a i n a d d r : . w o r d m a i n
l o o p : b l o o p
. e n d
T h e e x c e p t i o n v e c t o r s a r e s e t u p s l i g h t l y d i f f e r e n t l y t h a n t h o s e i n e x a m p l e 1 . I n s t e a d o f b r a n c h i n g
t o t h e l o o p a d d r e s s , t h e y l o a d t h e p r o g r a m c o u n t e r w i t h t h e a d d r e s s o f t h e l o o p .
T h e m a i n C c o d e i s
/ " e x 2 m a i n . c "/
# d e f i n e I O S E T 1 ( " ( ( v o l a t i l e u n s i g n e d l o n g ") 0 x E 0 0 2 8 0 1 4 ) )
# d e f i n e I O D I R 1 ( " ( ( v o l a t i l e u n s i g n e d l o n g ") 0 x E 0 0 2 8 0 1 8 ) )
# d e f i n e I O C L R 1 ( " ( ( v o l a t i l e u n s i g n e d l o n g ") 0 x E 0 0 2 8 0 1 C ) )
i n t m a i n ( v o i d )
{
/ " D e f i n e t h e L E D p i n s P 1 . [ 1 6 . . 2 3 ] a s o u t p u t "/
I O D I R 1 = 0 x 0 0 F F 0 0 0 0 ;
/ " C l e a r a l l p i n s "/
I O C L R 1 = 0 x 0 0 F F 0 0 0 0 ;
/ " L E D [ 7 : 0 ] ; e v e n o n ( h i g h ) , o d d o f f ( l o w ) "/
8
A R 1 8 0 3 M a y 1 0 , 2 0 0 6
I O S E T 1 = 0 x 0 0 5 5 0 0 0 0 ;
w h i l e ( 1 ) ;
r e t u r n 0 ;
}
C o m p i l a t i o n a n d d i s a s s e m b l y o f j u s t t h e m a i n c o d e u s i n g
a r m - e l f - g c c - m c p u = a r m 7 t d m i - c e x 2 _ m a i n . c
a r m - e l f - o b j d u m p - d e x 2 _ m a i n . o
w i l l s h o w a s s e m b l y c o d e t h a t u s e s t h e s t a c k p o i n t e r . H o w e v e r , a s t a c k p o i n t e r i s n o t s e t u p b y
e x 2 _ s t a r t . s , s o i n s t e a d t h e c o d e s h o u l d b e c o m p i l e d w i t h o p t i m i z a t i o n l e v e l 2 , - O 2 , a s t h a t e l i m i -
n a t e s t h e s t a c k r e f e r e n c e s f o r t h i s p a r t i c u l a r e x a m p l e . T h e a p p l i c a t i o n c a n b e c o m p i l e d u s i n g
a r m - e l f - g c c - O 2 - m c p u = a r m 7 t d m i - n o s t a r t f i l e s - T t e x t = 0 \
e x 2 _ s t a r t . s e x 2 _ m a i n . c - o e x 2 . e l f
T h e o r d e r o f t h e f i l e s h e r e i s i m p o r t a n t , t h e s t a r t u p c o d e m u s t c o m e f i r s t . D i s a s s e m b l y o f t h e c o d e
u s i n g
a r m - e l f - o b j d u m p - d e x 2 . e l f
s h o w s t h e s t a r t u p c o d e f o l l o w e d b y t h e m a i n c o d e . T h e c o d e c o v e r s a d d r e s s e s 0 t h r o u g h 4 8 h ( 4 C h
b y t e s ) . T h e s i z e o f t h e s t a n d a r d s e c t i o n s i n t h e f i l e a r e ( a l l t h e s e c t i o n s c a n b e v i e w e d u s i n g
a r m - e l f - o b j d u m p - h e x 2 . e l f )
a r m - e l f - s i z e e x 2 . e l f
t e x t d a t a b s s d e c h e x f i l e n a m e
7 6 0 0 7 6 4 c e x 2 . e l f
A s w i t h e x a m p l e 1 , t h e c o d e p r o d u c e s o n l y a t e x t s e c t i o n , s o o n l y F l a s h R A M i s u s e d .
C o n v e r s i o n o f t h e e l f f i l e i n t o h e x f o r m a t , a n d t h e n d o w n l o a d u s i n g F l a s h U t i l s p r o d u c e s t h e s a m e
r e s u l t a s e x a m p l e 1 .
3 . 3 E x a m p l e s 3 ( a ) a n d ( b ) : C p r o g r a m s t a c k s e t u p
T h e L P C 2 1 3 8 c o n t a i n s 3 2 K b y t e s ( i . e . , 8 0 0 0 h ) S R A M s t a r t i n g a t a d d r e s s 4 0 0 0 0 0 0 0 h . T h e A R M
s t a c k g r o w s d o w n , s o t h e e x 3 _ s t a r t . s f i l e i n i t i a l i z e s t h e s t a c k p o i n t e r t o t h e e n d o f S R A M , i . e . ,
4 0 0 0 8 0 0 0 h , a n d t h e n j u m p s t o m a i n
/ " e x 3 s t a r t . s "/
. t e x t
. a r m
. g l o b a l m a i n
. g l o b a l s t a r t
s t a r t :
/ " V e c t o r s ( 8 t o t a l ) "/
b r e s e t / " r e s e t "/
b l o o p / " u n d e f i n e d i n s t r u c t i o n "/
b l o o p / " s o f t w a r e i n t e r r u p t "/
b l o o p / " p r e f e t c h a b o r t "/
b l o o p / " d a t a a b o r t "/
n o p / " r e s e r v e d f o r t h e b o o t l o a d e r c h e c k s u m "/
b l o o p / " I R Q "/
9
A R 1 8 0 3 M a y 1 0 , 2 0 0 6
b l o o p / " F I Q "/
/ " S e t u p t h e s t a c k p o i n t e r a n d t h e n j u m p t o m a i n "/
r e s e t :
l d r s p , s t a c k a d d r
b l m a i n
/ " C a t c h r e t u r n f r o m m a i n "/
l o o p : b l o o p
/ " C o n s t a n t s "/
/ " L P C S R A M s t a r t s a t 0 x 4 0 0 0 0 0 0 0 , a n d t h e r e i s 3 2 K b = 8 0 0 0 h "/
s t a c k a d d r : . w o r d 0 x 4 0 0 0 8 0 0 0
. e n d
T h e E x a m p l e 3 ( a ) m a i n a p p l i c a t i o n t u r n s o n t h e M C B 2 1 3 0 L E D s a s i n t h e p r e v i o u s e x a m p l e s , b u t
u s e s a f u n c t i o n c a l l . A f u n c t i o n c a l l r e q u i r e s t h e u s e o f a s t a c k ( t h e u s u a g e o f t h e s t a c k b y t h e m a i n
c o d e i n t h e f i n a l e x e c u t a b l e i s s h o w n s h o r t l y ) .
/ " e x 3 a m a i n . c "/
# i n c l u d e l e d . h
i n t m a i n ( v o i d )
{
l e d i n i t ( ) ;
l e d ( 0 x 5 5 ) ;
w h i l e ( 1 ) ;
r e t u r n 0 ;
}
S i n c e t h e L E D r o u t i n e s a r e u s e d i n m u l t i p l e p r o g r a m s , t h e y a r e p l a c e d i n a s e p a r a t e f i l e s ; a h e a d e r
/ " l e d . h "/
# i f n d e f L E D H
# d e f i n e L E D H
/ " I n i t i a l i z e t h e L E D s "/
v o i d l e d i n i t ( ) ;
/ " C o n t r o l t h e L E D s "/
v o i d l e d ( u n s i g n e d l o n g v a l ) ;
/ " S e t L E D s "/
v o i d l e d s e t ( u n s i g n e d l o n g s e t ) ;
/ " C l e a r L E D s "/
v o i d l e d c l r ( u n s i g n e d l o n g c l r ) ;
# e n d i f
1 0
A R 1 8 0 3 M a y 1 0 , 2 0 0 6
a n d a n i m p l e m e n t a t i o n
/ " l e d . c "/
# i n c l u d e l e d . h
# d e f i n e I O S E T 1 ( " ( ( v o l a t i l e u n s i g n e d l o n g ") 0 x E 0 0 2 8 0 1 4 ) )
# d e f i n e I O D I R 1 ( " ( ( v o l a t i l e u n s i g n e d l o n g ") 0 x E 0 0 2 8 0 1 8 ) )
# d e f i n e I O C L R 1 ( " ( ( v o l a t i l e u n s i g n e d l o n g ") 0 x E 0 0 2 8 0 1 C ) )
v o i d l e d i n i t ( )
{
/ " D e f i n e t h e L E D p i n s P 1 . [ 1 6 . . 2 3 ] a s o u t p u t "/
I O D I R 1 = 0 x 0 0 F F 0 0 0 0 ;
/ " C l e a r a l l p i n s "/
I O C L R 1 = 0 x 0 0 F F 0 0 0 0 ;
}
v o i d l e d ( u n s i g n e d l o n g v a l )
{
/ " L E D s o f f "/
I O C L R 1 = ( Ü v a l &