2023-01-27-meeting-notes 1.3 KB

123456789101112131415161718
  1. - alter Gedankengang war falsch
  2. - FreeRTOS hat bei ecall instr. blockiert, für immer, daher wurden layered interr. ausgeschalten, aber das war nicht richtig
  3. - beim stöbern im code ist mir aufgefallen, dass die Semantik d. ecall instr. womöglich eine andere ist...
  4. - nachlesen im priv. spec. hat ergebn dass ecall/ebreak exceptions sind, keine interrupts (war nicht klar wegen mehrdeutiger Sprache, aber ein Blick auf die Tabelle v. exception priorities offenbart es auch)
  5. - alte changes reverted: keine layered interrupts
  6. - außerdem steht im spec an irgend einer Stelle, dass bei ecall NICHT mepc <- pc + 4 gesetzt werden soll (sondern mepc <- pc)
  7. - ecall/ebreak Semantik behoben
  8. - softw. int. nur noch auslösbar über "mip" write
  9. - ecall: "env. call from M-mode" exception
  10. - ebreak: "breakpoint" exception
  11. - unit tests anpassen (TODO)
  12. - test programme anpassen (TODO)
  13. - jetzt funktioniert das task switching richtig: start scheduler -> schedule task 1 -> suspend task 1 -> schedule task 2 -> suspend task 2 -> schedule idle task (indefinitely) (+ tick interrupts)
  14. - aber task 1/2 werden kein 2-tes mal gescheduled, ähnliche Ausgangslage zu vorher...
  15. - wahrschienlich falscher mepc Wert, wird übernommen im idle Task
  16. - leider mehr debugging... (TODO)
  17. - SPIKE ISA simulator debugging (?) (TODO)