Simple Real-time Operating System

A Kernel Inside View for a Beginner

Vår pris
371,-

(Paperback) Fri frakt!
Leveringstid: Sendes innen 21 dager

Paperback
Legg i
Paperback
Legg i
Vår pris: 371,-

(Paperback) Fri frakt!
Leveringstid: Sendes innen 21 dager

Om boka

Fakta

Innholdsfortegnelse










































































































































































































































































































































































































































































Preface9(2)




What is RTOS and why do we need it?

11(14)




Mutual exclusion, thread synchronization and scheduling

25(60)




Mutex implementation in SROS

30(14)




threadObject

31(1)




mutexObjectInit()

32(1)




mutexObjectLock()

32(3)




mutexObjectLock() assembly implementation

35(5)




SROS data structures in the first version

40(1)




mutexObjectRelease()

40(3)




scheduler

43(1)




Scheduler Implementation in SROS

43(1)




Interrupts handling in RTOS

44(2)




Interrupt Handler in SROS

46(1)




Creation of thread in RTOS

47(1)




Creation of thread in SROS

48(3)




RTOS initialization and starting

51(1)




SROS initialization and starting

51(2)




List node, memory management of list nodes in SROS

53(2)




Insertion and deletion of list nodes in the linked lists used in SROS

55(4)




semaphore

59(1)




Semaphore implementation in SROS

60(5)




semaphoreObjectInit()

61(1)




semaphoreObjectPend()

61(2)




semaphoreObjectPost()

63(2)




Mailbox

65(1)




Mailbox implementation in SROS

66(8)




mailboxObjectInit()

67(1)




mailboxObjectPost()

68(3)




mailboxObjectPend()

71(3)




Example application using SROS

74(10)




Exercises, short term assignments

84(1)




Timer Support

85(32)




Need for timer support

85(1)




Timer support implementation in RTOS

86(1)




Timer support implementation in SROS

86(31)




mutexObjectLock()

87(2)




Timer management in SROS

89(4)




Inserting a threadObject into timerList

93(4)




Deleting a threadObject from the timerList

97(3)




mutexObjectRelease()

100(3)




semaphoreObjectPend()

103(2)




semaphoreObjectPost()

105(2)




mailboxObject functions with timer support

107(5)




sleep()

112(1)




Destroying a thread in RTOS

112(1)




threadObjectDestroy()

113(4)




Priority Inversions

117(8)




Bounded priority inversion

117(1)




Unbounded priority inversion

118(2)




Solution to the unbounded priority inversion

120(2)




Priority inheritance

120(1)




Priority ceiling

121(1)




SROS solution to priority inversion

122(1)




Exercises

122(3)




Deadlocks

125(12)




Simple examples of deadlock scenarios

125(2)




Resource allocation graph

127(1)




Necessary conditions for deadlocks

128(2)




Dealing with deadlocks

130(4)




Deadlock prevention

130(2)




Deadlock avoidance

132(1)




Deadlock detection and recovery

133(1)




Manual reset of the system if the system is frozen by deadlock

134(1)




SROS solution for deadlock avoidance

134(3)




Schedulability of a real-time application

137(12)




Basic Rate Monotonic Analysis

138(4)




Extended Rate Monotonic Analysis

142(7)




Determining the blocking time

146(1)




Consideration for Scheduling overhead

147(1)




Interrupts overhead

148(1)




Timer overhead

148(1)




Consideration for aperiodic events

148(1)




Other components of RTOS

149(6)




I/O sub system

149(4)




Methods of data transfer between device driver and I/O device

151(1)




Typical API's available to application from I/O subsystem

151(1)




Typical device driver responsibilities

152(1)




Network stack

153(1)




File System

154(1)




Appendix-A Brief note on ARM-V5 architecture

155(46)




Processor modes

157(3)




Exceptions

160(1)




ARM Instruction set

161(40)




The condition field

161(2)




Affecting the condition flags

163(1)




Notation used in the description of syntax of instructions

163(1)




Data processing instructions

163(5)




Multiply Instructions

168(4)




Miscellaneous Arithmetic instructions

172(1)




Status Register access instructions

173(1)




Load and Store instructions

174(8)




Load and store multiple instructions

182(10)




Semaphore instructions

192(1)




Exception-generating instructions

193(3)




Branch Instructions

196(3)




Loading a 32 bit immediate value into a register

199(2)




Appendix-B SROS source code

201(102)




SROS V1.0

201(52)




rtos.h

201(3)




rtos.c

204(7)




rtosAsm.h

211(3)




rtosAsm.s

214(13)




mutexObjectAsm.s

227(6)




semaphoreObjectAsm.s

233(6)




mailboxObjectAsm.s

239(14)




SROS V2.0

253(50)




rtos.h

253(3)




rtos.c

256(13)




rtosAsm.h

269(4)




rtosAsm.s

273(15)




mutexObjectAsm.s

288(8)




semaphoreObjectAsm.s

296(7)




mailboxObjectAsm.s

303