コード例 #1
0
ファイル: generator.py プロジェクト: cogu/autosar
 def __init__(self, task):
    init_delay=0 #FIXME: allow users to select this at a later time
    self.decl = C.variable('os_alarm_cfg_%s'%task.name, 'os_alarm_cfg_t', static=True, const=True, array='OS_NUM_ALARMS_%s'%task.name)
    self.body = C.block(innerIndent=innerIndentDefault)
    self.body.append(C.linecomment('OS Task,       Event ID,                     Init Delay (ms),  Period (ms)'))
    for event in task.timer_events:
       self.body.append(C.line('{'+'{0: >10},{1: >50},{2: >5},{3: >5}'.format(
          '&m_os_task_'+task.name, 'EVENT_MASK_%s_%s'%(task.name,event.name), init_delay, event.inner.period)+'},'))
コード例 #2
0
ファイル: generator.py プロジェクト: ncs1/as
 def __init__(self, task):
     init_delay = 0  #FIXME: allow users to select this at a later time
     self.decl = C.variable('os_alarm_cfg_%s' % task.name,
                            'os_alarm_cfg_t',
                            static=True,
                            const=True,
                            array='OS_NUM_ALARMS_%s' % task.name)
     self.body = C.block(innerIndent=innerIndentDefault)
     self.body.append(
         C.linecomment(
             'OS Task,       Event ID,                     Init Delay (ms),  Period (ms)'
         ))
     for event in task.timer_events:
         self.body.append(
             C.line('{' + '{0: >10},{1: >50},{2: >5},{3: >5}'.format(
                 '&m_os_task_' + task.name, 'EVENT_MASK_%s_%s' %
                 (task.name, event.name), init_delay, event.inner.period) +
                    '},'))
コード例 #3
0
 def _define_event_masks(self):
     bit_mask = 1
     num_timer_events = 0
     for num, event_mask in enumerate(sorted(self.event_map.keys())):
         if num > 32:
             raise RuntimeError(
                 'Task %s cannot support more than 32 events' %
                 (os_task.name))
         event_list = self.event_map[event_mask]
         for event in event_list:
             if isinstance(event, autosar.rte.TimerEvent):
                 self.timer_events.append(event)
         runnables_string = ", ".join(
             [event.runnable.symbol for event in event_list])
         self.event_masks.append(
             C.define(event_mask,
                      str('((uint32) 0x%08X)' % bit_mask) + ' ' +
                      str(C.linecomment(runnables_string)),
                      align=80))
         bit_mask = bit_mask << 1
コード例 #4
0
ファイル: generator.py プロジェクト: krsreenatha/autosar-1
 def generateEventCfg(self, destdir, destfile='os_event_cfg.h'):
     self.event_id = 1
     self.num_timer_events = 0
     file = C.hfile(os.path.join(destdir, destfile))
     code = file.code
     with io.open(file.path, 'w', newline='\n') as fp:
         for os_task in self.cfg.tasks:
             for event_name in sorted(os_task.event_map.keys()):
                 rte_event = os_task.event_map[event_name]
                 if isinstance(rte_event, autosar.rte.TimerEvent):
                     self.num_timer_events += 1
                 code.append(
                     C.define(
                         event_name,
                         str(self.event_id) + ' ' +
                         str(C.linecomment(rte_event.rte_runnable.symbol)),
                         align=60))
                 self.event_id += 1
             code.append(C.blank())
         code.append(
             C.define('OS_NUM_TIMER_EVENTS', str(self.num_timer_events)))
         for line in file.lines():
             fp.write(line + '\n')
コード例 #5
0
ファイル: os.py プロジェクト: cogu/autosar
 def _define_event_masks(self):
    bit_mask = 1
    num_timer_events = 0
    for num,event_mask in enumerate(sorted(self.event_map.keys())):
       if num>32:
          raise RuntimeError('Task %s cannot support more than 32 events'%(os_task.name))
       event_list = self.event_map[event_mask]
       for event in event_list:
          if isinstance(event, autosar.rte.TimerEvent):
             self.timer_events.append(event)
       runnables_string = ", ".join([event.runnable.symbol for event in event_list])
       self.event_masks.append(C.define(event_mask, str('((uint32) 0x%08X)'%bit_mask)+' '+str(C.linecomment(runnables_string)), align=80))
       bit_mask=bit_mask<<1