sched.py 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. #
  2. # Generated with CMSIS-DSP Compute Graph Scripts.
  3. # The generated code is not covered by CMSIS-DSP license.
  4. #
  5. # The support classes and code is covered by CMSIS-DSP license.
  6. #
  7. import sys
  8. import numpy as np
  9. import cmsisdsp as dsp
  10. from cmsisdsp.cg.nodes.simu import *
  11. from appnodes import *
  12. from custom import *
  13. DEBUGSCHED=False
  14. #
  15. # FIFO buffers
  16. #
  17. FIFOSIZE0=256
  18. buf0=np.empty(FIFOSIZE0,dtype=np.float32)
  19. for i in range(FIFOSIZE0):
  20. buf0[i] = 0
  21. FIFOSIZE1=256
  22. buf1=np.empty(FIFOSIZE1,dtype=np.float32)
  23. for i in range(FIFOSIZE1):
  24. buf1[i] = 0
  25. FIFOSIZE2=256
  26. buf2=np.empty(FIFOSIZE2,dtype=np.float32)
  27. for i in range(FIFOSIZE2):
  28. buf2[i] = 0
  29. FIFOSIZE3=512
  30. buf3=np.empty(FIFOSIZE3,dtype=np.float32)
  31. for i in range(FIFOSIZE3):
  32. buf3[i] = 0
  33. FIFOSIZE4=512
  34. buf4=np.empty(FIFOSIZE4,dtype=np.float32)
  35. for i in range(FIFOSIZE4):
  36. buf4[i] = 0
  37. FIFOSIZE5=512
  38. buf5=np.empty(FIFOSIZE5,dtype=np.float32)
  39. for i in range(FIFOSIZE5):
  40. buf5[i] = 0
  41. FIFOSIZE6=256
  42. buf6=np.empty(FIFOSIZE6,dtype=np.float32)
  43. for i in range(FIFOSIZE6):
  44. buf6[i] = 0
  45. FIFOSIZE7=256
  46. buf7=np.empty(FIFOSIZE7,dtype=np.float32)
  47. for i in range(FIFOSIZE7):
  48. buf7[i] = 0
  49. def scheduler(dispbuf):
  50. cgStaticError=0
  51. nbSchedule=0
  52. debugCounter=42
  53. #
  54. # Create FIFOs objects
  55. #
  56. fifo0=FIFO(FIFOSIZE0,buf0)
  57. fifo1=FIFO(FIFOSIZE1,buf1)
  58. fifo2=FIFO(FIFOSIZE2,buf2)
  59. fifo3=FIFO(FIFOSIZE3,buf3)
  60. fifo4=FIFO(FIFOSIZE4,buf4)
  61. fifo5=FIFO(FIFOSIZE5,buf5)
  62. fifo6=FIFO(FIFOSIZE6,buf6)
  63. fifo7=FIFO(FIFOSIZE7,buf7)
  64. #
  65. # Create node objects
  66. #
  67. audioOverlap = OverlapAdd(256,128,fifo6,fifo7)
  68. audioWin = SlidingBuffer(256,128,fifo0,fifo1)
  69. cfft = CFFT(512,512,fifo3,fifo4)
  70. icfft = ICFFT(512,512,fifo4,fifo5)
  71. sink = FileSink(192,fifo7,"output_example3.txt",dispbuf)
  72. src = FileSource(192,fifo0,"input_example3.txt")
  73. toCmplx = ToComplex(256,512,fifo2,fifo3)
  74. toReal = ToReal(512,256,fifo5,fifo6)
  75. while((cgStaticError==0) and (debugCounter > 0)):
  76. nbSchedule = nbSchedule + 1
  77. cgStaticError = src.run()
  78. if cgStaticError < 0:
  79. break
  80. cgStaticError = audioWin.run()
  81. if cgStaticError < 0:
  82. break
  83. i0=fifo1.getReadBuffer(256)
  84. o2=fifo2.getWriteBuffer(256)
  85. o2[:]=dsp.arm_mult_f32(i0,HANN)
  86. cgStaticError = 0
  87. if cgStaticError < 0:
  88. break
  89. cgStaticError = toCmplx.run()
  90. if cgStaticError < 0:
  91. break
  92. cgStaticError = cfft.run()
  93. if cgStaticError < 0:
  94. break
  95. cgStaticError = icfft.run()
  96. if cgStaticError < 0:
  97. break
  98. cgStaticError = toReal.run()
  99. if cgStaticError < 0:
  100. break
  101. cgStaticError = audioOverlap.run()
  102. if cgStaticError < 0:
  103. break
  104. cgStaticError = src.run()
  105. if cgStaticError < 0:
  106. break
  107. cgStaticError = audioWin.run()
  108. if cgStaticError < 0:
  109. break
  110. i0=fifo1.getReadBuffer(256)
  111. o2=fifo2.getWriteBuffer(256)
  112. o2[:]=dsp.arm_mult_f32(i0,HANN)
  113. cgStaticError = 0
  114. if cgStaticError < 0:
  115. break
  116. cgStaticError = toCmplx.run()
  117. if cgStaticError < 0:
  118. break
  119. cgStaticError = cfft.run()
  120. if cgStaticError < 0:
  121. break
  122. cgStaticError = icfft.run()
  123. if cgStaticError < 0:
  124. break
  125. cgStaticError = toReal.run()
  126. if cgStaticError < 0:
  127. break
  128. cgStaticError = audioOverlap.run()
  129. if cgStaticError < 0:
  130. break
  131. cgStaticError = sink.run()
  132. if cgStaticError < 0:
  133. break
  134. cgStaticError = audioWin.run()
  135. if cgStaticError < 0:
  136. break
  137. i0=fifo1.getReadBuffer(256)
  138. o2=fifo2.getWriteBuffer(256)
  139. o2[:]=dsp.arm_mult_f32(i0,HANN)
  140. cgStaticError = 0
  141. if cgStaticError < 0:
  142. break
  143. cgStaticError = toCmplx.run()
  144. if cgStaticError < 0:
  145. break
  146. cgStaticError = cfft.run()
  147. if cgStaticError < 0:
  148. break
  149. cgStaticError = icfft.run()
  150. if cgStaticError < 0:
  151. break
  152. cgStaticError = toReal.run()
  153. if cgStaticError < 0:
  154. break
  155. cgStaticError = audioOverlap.run()
  156. if cgStaticError < 0:
  157. break
  158. cgStaticError = sink.run()
  159. if cgStaticError < 0:
  160. break
  161. debugCounter = debugCounter - 1
  162. return(nbSchedule,cgStaticError)