223 | | * Pour la tâche `tg`, modifiez la déclaration de la tâche pour ajouter l'implémentation matérielle: |
224 | | {{{ |
225 | | from soclib.hwtask import HwTask, MwmrCoproc |
226 | | |
227 | | hw_fifo_tg = MwmrCoproc( |
228 | | module = 'caba:fifo_reader', |
229 | | from_coproc = [ 'output:fifo' ], |
230 | | to_coproc = [], |
231 | | config = [], |
232 | | status = [], |
233 | | binary = 'bash', |
234 | | argv = [ 'bash', '-c', 'while cat %(FILE_NAME)s ; do true ; done' ], |
235 | | word_t = 'uint32_t' ) |
| 223 | * Pour la tâche `tg`, modifiez la déclaration de la tâche pour ajouter l'implémentation matérielle virtuelle (`SyntheticTask`): |
| 224 | {{{ |
| 225 | from soclib import SyntheticTask |
248 | | * De même, pour la tâche `ramdac`: |
249 | | {{{ |
250 | | from soclib.hwtask import HwTask, MwmrCoproc |
251 | | |
252 | | hw_fifo_ramdac = MwmrCoproc( |
253 | | module = 'caba:fifo_writer', |
254 | | from_coproc = [], |
255 | | to_coproc = [ 'input:fifo' ], |
256 | | config = [], |
257 | | status = [], |
258 | | binary = 'soclib-pipe2fb', |
259 | | argv = [ 'soclib-pipe2fb', '%(WIDTH)s', '%(HEIGHT)s' ], |
260 | | word_t = 'uint32_t' ) |
261 | | |
262 | | TaskModel( |
263 | | 'ramdac', |
264 | | ports = {'input':MwmrInput(48*8)}, |
265 | | impl = [ SwTask( 'ramdac', |
266 | | bootstrap = 'bootstrap', |
267 | | stack_size = 4096, |
268 | | sources = [ 'ramdac.c', 'ramdac_x11.c' ], |
269 | | defines = [ 'WIDTH', 'HEIGHT' ] ), |
270 | | HwTask( hw_fifo_ramdac ) |
271 | | ] ) |
272 | | }}} |
| 238 | * De même, pour la tâche `ramdac`. |