mirror of
https://github.com/openmv/openmv.git
synced 2025-11-04 14:49:50 +08:00
Add System Reset Command
* Add sys reset to USBDBG and IDE
This commit is contained in:
parent
6c7ad99152
commit
8467c67f06
@ -12,6 +12,7 @@
|
||||
#include "framebuffer.h"
|
||||
#include "ff.h"
|
||||
#include "py/py_file.h"
|
||||
#include "core_cm4.h"
|
||||
#include "usbdbg.h"
|
||||
|
||||
#define USB_TX_BUF_SIZE (64)
|
||||
@ -185,6 +186,10 @@ void usbdbg_control(void *buffer, uint8_t request, uint16_t length)
|
||||
break;
|
||||
}
|
||||
|
||||
case USBDBG_SYS_RESET:
|
||||
NVIC_SystemReset();
|
||||
break;
|
||||
|
||||
default: /* error */
|
||||
cmd = USBDBG_NONE;
|
||||
break;
|
||||
|
||||
@ -21,6 +21,7 @@ enum usbdbg_cmd {
|
||||
USBDBG_DESCRIPTOR_SAVE,
|
||||
USBDBG_ATTR_READ,
|
||||
USBDBG_ATTR_WRITE,
|
||||
USBDBG_SYS_RESET,
|
||||
};
|
||||
void usbdbg_init();
|
||||
int usbdbg_script_ready();
|
||||
|
||||
@ -452,6 +452,21 @@
|
||||
<property name="homogeneous">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkToolButton" id="reset_button">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="label" translatable="yes">toolbutton5</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="stock_id">gtk-quit</property>
|
||||
<signal name="clicked" handler="on_reset_clicked" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="homogeneous">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSeparatorToolItem" id="separator1">
|
||||
<property name="visible">True</property>
|
||||
@ -523,20 +538,6 @@
|
||||
<property name="homogeneous">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkToolButton" id="toolbutton6">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="label" translatable="yes">toolbutton5</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="stock_id">gtk-apply</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="homogeneous">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSeparatorToolItem" id="separator3">
|
||||
<property name="visible">True</property>
|
||||
|
||||
@ -88,6 +88,7 @@ class OMVGtk:
|
||||
signals = {
|
||||
"on_top_window_destroy" : self.quit,
|
||||
"on_connect_clicked" : self.connect_clicked,
|
||||
"on_reset_clicked" : self.reset_clicked,
|
||||
"on_execute_clicked" : self.execute_clicked,
|
||||
"on_stop_clicked" : self.stop_clicked,
|
||||
"on_motion_notify" : self.motion_notify,
|
||||
@ -108,6 +109,7 @@ class OMVGtk:
|
||||
|
||||
self.connected = False
|
||||
self.builder.get_object('connect_button').set_sensitive(True)
|
||||
self.builder.get_object('reset_button').set_sensitive(False)
|
||||
self.builder.get_object('exec_button').set_sensitive(False)
|
||||
self.builder.get_object('stop_button').set_sensitive(False)
|
||||
self.builder.get_object('zoomin_button').set_sensitive(False)
|
||||
@ -147,6 +149,7 @@ class OMVGtk:
|
||||
|
||||
self.connected = True
|
||||
self.builder.get_object('connect_button').set_sensitive(False)
|
||||
self.builder.get_object('reset_button').set_sensitive(True)
|
||||
self.builder.get_object('exec_button').set_sensitive(True)
|
||||
self.builder.get_object('stop_button').set_sensitive(True)
|
||||
self.builder.get_object('zoomin_button').set_sensitive(True)
|
||||
@ -176,6 +179,7 @@ class OMVGtk:
|
||||
|
||||
self.connected = False
|
||||
self.builder.get_object('connect_button').set_sensitive(True)
|
||||
self.builder.get_object('reset_button').set_sensitive(False)
|
||||
self.builder.get_object('exec_button').set_sensitive(False)
|
||||
self.builder.get_object('stop_button').set_sensitive(False)
|
||||
self.builder.get_object('zoomin_button').set_sensitive(False)
|
||||
@ -187,6 +191,10 @@ class OMVGtk:
|
||||
def connect_clicked(self, widget):
|
||||
self.connect()
|
||||
|
||||
def reset_clicked(self, widget):
|
||||
if (self.connected):
|
||||
openmv.reset()
|
||||
|
||||
def execute_clicked(self, widget):
|
||||
buf = self.buffer.get_text(self.buffer.get_start_iter(), self.buffer.get_end_iter())
|
||||
# interrupt any running code
|
||||
|
||||
@ -33,6 +33,7 @@ __USBDBG_TEMPLATE_SAVE=8
|
||||
__USBDBG_DESCRIPTOR_SAVE=9
|
||||
__USBDBG_ATTR_READ=10
|
||||
__USBDBG_ATTR_WRITE=11
|
||||
__USBDBG_SYS_RESET=12
|
||||
|
||||
ATTR_CONTRAST=0
|
||||
ATTR_BRIGHTNESS=1
|
||||
@ -152,6 +153,13 @@ def set_attr(attr, value):
|
||||
def get_attr(attr):
|
||||
return 0
|
||||
|
||||
def reset():
|
||||
try:
|
||||
# This will timeout.
|
||||
__dev.ctrl_transfer(0x41, __USBDBG_SYS_RESET, 0, __INTERFACE, None, __TIMEOUT)
|
||||
except:
|
||||
pass
|
||||
|
||||
if __name__ == '__main__':
|
||||
if len(sys.argv)!= 2:
|
||||
print 'usage: openmv.py <script>'
|
||||
|
||||
Loading…
Reference in New Issue
Block a user