TrampolineRTOS/trampoline

ISRS1 are taken as ISRS2 sometimes in oil

Closed this issue · 0 comments

The APPLICATION::ISR attribute contains both ISRS1 and ISRS2, but sometimes it is taken as containing only ISRS2.

root.goilTemplates:685

let CORES := emptymap     
if [APPLICATION length] > 0 then     
  let task_map := mapof TASKS by NAME     
  let isr_map := mapof ISRS2 by NAME     
  foreach app in APPLICATION do     
    let core := [exists app::CORE default (0) string]     
    let CORES[core]::ISRS := emptylist
    (...)      
    foreach isr_name in exists app::ISR default (emptylist) do
      let CORES[core]::ISRS += isr_map[isr_name::VALUE]
    end foreach                                             
  end foreach       
else              
  let CORES["0"]::TASKS := TASKS
  let CORES["0"]::ISRS := ISRS       
end if                             

isr_name should be checked before being added into CORES::ISRS. By the way in monocore we should just add ISRS2 instead of all ISRS.

root.goilTemplates:1129

    let process_of_app := app::TASK . app::ISR
#    display app::TASK
#    display app::ISR
#    display process_of_app
    let app::PROCESS := process_of_app

This list will be used to produce a table of process id in application_descriptor.goilTemplates, thus producing an error (ISRS1 have no IDs).