The R4.0 system uses an XML file to configure the Audio Weaver and the underlying BSP. This is converted to a binary file and loaded at system boot. An annotated version of the XML file is shown below.
<config platform="8755"> <awe_process> <!--Unused. Will be removed in the future--> <enable type="BOOL">true</enable> </awe_process> <params> <log_level type="UINT32" max_level="2"> <!-- Specifies the log levels for each core. --> <adsp type="UINT32">0</adsp> <gpdsp0 type="UINT32">0</gpdsp0> <gpdsp1 type="UINT32">0</gpdsp1> <arm type="UINT32">0</arm> </log_level> <thread_num> <!-- Number of child audio processing threads per core--> <adsp type="UINT8">4</adsp> <gpdsp0 type="UINT8">10</gpdsp0> <gpdsp1 type="UINT8">10</gpdsp1> <arm type="UINT8">4</arm> </thread_num> <adsp_thread_priority> <!-- thread_parent is the priority of the main audio processing interrupt. This is the highest priority audio thread. --> <thread_parent type="UINT8">50</thread_parent> <thread_child> <!-- Next separate priorities for each child thread. The number of child threads is specified above. The child threads should be in decreasing priority from the parent_thread. --> <thread_0 type="UINT8">51</thread_0> <thread_1 type="UINT8">52</thread_1> <thread_2 type="UINT8">53</thread_2> <thread_3 type="UINT8">54</thread_3> </thread_child> </adsp_thread_priority> <gpdsp0_thread_priority> <thread_parent type="UINT8">50</thread_parent> <thread_child> <thread_0 type="UINT8">51</thread_0> <thread_1 type="UINT8">52</thread_1> <thread_2 type="UINT8">53</thread_2> <thread_3 type="UINT8">54</thread_3> <thread_4 type="UINT8">55</thread_4> <thread_5 type="UINT8">56</thread_5> <thread_6 type="UINT8">57</thread_6> <thread_7 type="UINT8">58</thread_7> <thread_8 type="UINT8">59</thread_8> <thread_9 type="UINT8">60</thread_9> </thread_child> </gpdsp0_thread_priority> <gpdsp1_thread_priority> <thread_parent type="UINT8">50</thread_parent> <thread_child> <thread_0 type="UINT8">51</thread_0> <thread_1 type="UINT8">52</thread_1> <thread_2 type="UINT8">53</thread_2> <thread_3 type="UINT8">54</thread_3> <thread_4 type="UINT8">55</thread_4> <thread_5 type="UINT8">56</thread_5> <thread_6 type="UINT8">57</thread_6> <thread_7 type="UINT8">58</thread_7> <thread_8 type="UINT8">59</thread_8> <thread_9 type="UINT8">60</thread_9> </thread_child> </gpdsp1_thread_priority> <arm_thread_priority> <thread_parent type="UINT8">63</thread_parent> <thread_child> <thread_0 type="UINT8">62</thread_0> <thread_1 type="UINT8">61</thread_1> <thread_2 type="UINT8">60</thread_2> <thread_3 type="UINT8">59</thread_3> </thread_child> </arm_thread_priority> <!-- Number of audio processing cores --> <num_of_instances type="UINT32">4</num_of_instances> <adsp> <!-- Core ID (or instance ID) of the core. --> <coreID type="UINT8">0</coreID> <!-- Sizes of the Audio Weaver heaps, in units of 32-bit words. --> <fastheapA type="UINT32">250000</fastheapA> <fastheapB type="UINT32">250000</fastheapB> <slowheap type="UINT32">250000</slowheap> <cpuclock type="UINT32" unit="KHz">1344000</cpuclock> </adsp> <gpdsp0> <coreID type="UINT8">1</coreID> <fastheapA type="UINT32">250000</fastheapA> <fastheapB type="UINT32">250000</fastheapB> <slowheap type="UINT32">250000</slowheap> <cpuclock type="UINT32" unit="KHz">1708800</cpuclock> </gpdsp0> <gpdsp1> <coreID type="UINT8">2</coreID> <fastheapA type="UINT32">250000</fastheapA> <fastheapB type="UINT32">250000</fastheapB> <slowheap type="UINT32">250000</slowheap> <cpuclock type="UINT32" unit="KHz">1708800</cpuclock> </gpdsp1> <arm> <coreID type="UINT8">3</coreID> <fastheapA type="UINT32">7000000</fastheapA> <fastheapB type="UINT32">70000</fastheapB> <slowheap type="UINT32">70000</slowheap> <cpuclock type="UINT32" unit="KHz">2100000</cpuclock> </arm> <!-- Size of the shared memory heap. This is visible to all cores. In units of 32-bit words --> <shared_heap_size type="UINT32" unit="UINT32">262000</shared_heap_size> <!-- These values specify the "targetInfo" which is read back by the Audio Weaver Server when it connects to the target. This will be removed in the future. --> <block_size type="UINT16">48</block_size> <sample_rate type="UINT16">48000</sample_rate> <in_channel type="UINT16">16</in_channel> <out_channel type="UINT16">16</out_channel> </params> </config>