1<?xml version="1.0" encoding="utf-8" standalone="no"?> 2<device xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="1.1" xs:noNamespaceSchemaLocation="svd_schema.xsd"> 3 <peripheral> 4 <name>SEMA</name> 5 <description>The Semaphore peripheral allows multiple cores in a system to cooperate when accessing shred resources. 6 The peripheral contains eight semaphores that can be atomically set and cleared. It is left to the discretion of the software 7 architect to decide how and when the semaphores are used and how they are allocated. Existing hardware does not have to be 8 9 modified for this type of cooperative sharing, and the use of semaphores is exclusively within the software domain.</description> 10 <baseAddress>0x4003E000</baseAddress> 11 <addressBlock> 12 <offset>0x00</offset> 13 <size>0x1000</size> 14 <usage>registers</usage> 15 </addressBlock> 16 <registers> 17 <register> 18 <dim>8</dim> 19 <dimIncrement>0x04</dimIncrement> 20 <name>SEMAPHORES[%s]</name> 21 <description>Read to test and set, returns prior value. Write 0 to clear semaphore.</description> 22 <addressOffset>0x000</addressOffset> 23 <size>32</size> 24 <fields> 25 <field> 26 <name>sema</name> 27 <bitOffset>0</bitOffset> 28 <bitWidth>1</bitWidth> 29 </field> 30 </fields> 31 </register> 32 <register> 33 <name>status</name> 34 <description>Semaphore status bits. 0 indicates the semaphore is free, 1 indicates taken.</description> 35 <addressOffset>0x100</addressOffset> 36 <size>32</size> 37 <fields> 38 <field> 39 <name>STATUS</name> 40 <bitOffset>0</bitOffset> 41 <bitWidth>8</bitWidth> 42 </field> 43 </fields> 44 </register> 45 </registers> 46 </peripheral> 47 <!-- SEMA: 48 Semaphore --> 49</device>