| 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`. |