mirror of
https://git.rtems.org/rtems-tools/
synced 2025-10-17 19:18:17 +08:00
Added support for classic/timers.
This commit is contained in:

committed by
Chris Johns

parent
591fbf65d3
commit
086e689955
@@ -11,6 +11,7 @@ import re
|
|||||||
|
|
||||||
import objects
|
import objects
|
||||||
import threads
|
import threads
|
||||||
|
import watchdog
|
||||||
import supercore
|
import supercore
|
||||||
|
|
||||||
class attribute:
|
class attribute:
|
||||||
@@ -179,4 +180,17 @@ class message_queue:
|
|||||||
print ' Name:', self.object_control.name()
|
print ' Name:', self.object_control.name()
|
||||||
print ' Attr:', self.attr.to_string()
|
print ' Attr:', self.attr.to_string()
|
||||||
|
|
||||||
self.core_control.show()
|
self.core_control.show()
|
||||||
|
|
||||||
|
class timer:
|
||||||
|
'''Print a classic timer'''
|
||||||
|
|
||||||
|
def __init__(self, id):
|
||||||
|
self.id = id
|
||||||
|
self.object = objects.information.object(self.id).dereference()
|
||||||
|
self.object_control = objects.control(self.object['Object'])
|
||||||
|
self.watchdog = watchdog.control(self.object['Ticker'])
|
||||||
|
|
||||||
|
def show(self, from_tty):
|
||||||
|
print ' Name:', self.object_control.name()
|
||||||
|
self.watchdog.show()
|
@@ -77,7 +77,8 @@ class rtems_object(gdb.Command):
|
|||||||
objects = {
|
objects = {
|
||||||
'classic/semaphores': lambda id: classic.semaphore(id),
|
'classic/semaphores': lambda id: classic.semaphore(id),
|
||||||
'classic/tasks': lambda id: classic.task(id),
|
'classic/tasks': lambda id: classic.task(id),
|
||||||
'classic/message_queues': lambda id: classic.message_queue(id)
|
'classic/message_queues': lambda id: classic.message_queue(id),
|
||||||
|
'classic/timers' : lambda id: classic.timer(id)
|
||||||
}
|
}
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
@@ -16,14 +16,14 @@ class state:
|
|||||||
BEING_INSERTED = 1
|
BEING_INSERTED = 1
|
||||||
ACTIVE = 2
|
ACTIVE = 2
|
||||||
REMOVE_IT = 3
|
REMOVE_IT = 3
|
||||||
|
|
||||||
states = {
|
states = {
|
||||||
0: 'inactive',
|
0: 'inactive',
|
||||||
1: 'being-inserted',
|
1: 'being-inserted',
|
||||||
2: 'active',
|
2: 'active',
|
||||||
3: 'remove-it'
|
3: 'remove-it'
|
||||||
}
|
}
|
||||||
|
|
||||||
def __init__(self, s):
|
def __init__(self, s):
|
||||||
self.s = s
|
self.s = s
|
||||||
|
|
||||||
@@ -35,8 +35,9 @@ class control:
|
|||||||
def __init__(self, ctrl):
|
def __init__(self, ctrl):
|
||||||
self.ctrl = ctrl
|
self.ctrl = ctrl
|
||||||
|
|
||||||
|
# Not sure if an extra class is needed.
|
||||||
def state(self):
|
def state(self):
|
||||||
return state(self.ctrl['state']).to_string()
|
return state(int(self.ctrl['state'])).to_string()
|
||||||
|
|
||||||
def initial(self):
|
def initial(self):
|
||||||
return self.ctrl['initial']
|
return self.ctrl['initial']
|
||||||
@@ -50,7 +51,15 @@ class control:
|
|||||||
def stop_time(self):
|
def stop_time(self):
|
||||||
return self.ctrl['stop_time']
|
return self.ctrl['stop_time']
|
||||||
|
|
||||||
|
# ToDo: Better printing of watchdog.
|
||||||
def routine(self):
|
def routine(self):
|
||||||
addr = self.ctrl['routine']
|
addr = self.ctrl['routine']
|
||||||
sym = gdb.lookup_symbol(addr)
|
return str(addr)
|
||||||
print sym
|
|
||||||
|
def show(self):
|
||||||
|
print " State:", self.state()
|
||||||
|
print " Intial Interval:", self.initial()
|
||||||
|
print " Delta Interval:", self.delta_interval()
|
||||||
|
print " Start time:", self.start_time()
|
||||||
|
print " Stop time:", self.stop_time()
|
||||||
|
print " WD Routine:", self.routine()
|
Reference in New Issue
Block a user