git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@15341 27425a3e-05d8-49a3-a47f-9c15f0e5edd8
This commit is contained in:
parent
3bceb7fd9d
commit
abf9ce61a6
|
@ -6,7 +6,7 @@
|
||||||
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doReset" value="true"/>
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doReset" value="true"/>
|
||||||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageFileName" value=""/>
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageFileName" value=""/>
|
||||||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageOffset" value=""/>
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageOffset" value=""/>
|
||||||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.initCommands" value="set remotetimeout 20 monitor reset init monitor sleep 50 monitor erase_address pad 0x08180000 0x00080000 load /home/giovanni/Projects/ChibiStudio/chibios_trunk/demos/various/SB-CLIENT-256k-08180000-128k-20060000/build/sb.elf load /home/giovanni/Projects/ChibiStudio/chibios_trunk/demos/various/SB-CLIENT-256k-081C0000-128k-20080000/build/sb.elf "/>
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.initCommands" value="set remotetimeout 20 monitor reset init monitor sleep 50"/>
|
||||||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.jtagDeviceId" value="org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.OpenOCDSocket"/>
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.jtagDeviceId" value="org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.OpenOCDSocket"/>
|
||||||
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadImage" value="true"/>
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadImage" value="true"/>
|
||||||
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadSymbols" value="true"/>
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadSymbols" value="true"/>
|
||||||
|
|
|
@ -97,8 +97,6 @@ sb_class_t sbx1;
|
||||||
|
|
||||||
static THD_WORKING_AREA(waUnprivileged1, 1024);
|
static THD_WORKING_AREA(waUnprivileged1, 1024);
|
||||||
|
|
||||||
static thread_t *sb1tp;
|
|
||||||
|
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
/* Main and generic code. */
|
/* Main and generic code. */
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
|
@ -125,8 +123,10 @@ static void SBHandler(eventid_t id) {
|
||||||
|
|
||||||
(void)id;
|
(void)id;
|
||||||
|
|
||||||
if (chThdTerminatedX(sb1tp)) {
|
if (!sbIsThreadRunningX(&sbx1)) {
|
||||||
chprintf((BaseSequentialStream *)&SD2, "SB1 terminated\r\n");
|
msg_t msg = sbWaitThread(&sbx1);
|
||||||
|
|
||||||
|
chprintf((BaseSequentialStream *)&SD2, "SB1 terminated (%d)\r\n", msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -253,6 +253,7 @@ int main(void) {
|
||||||
vfsClose(np);
|
vfsClose(np);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if 0
|
||||||
/* Starting sandboxed thread 1.*/
|
/* Starting sandboxed thread 1.*/
|
||||||
sb1tp = sbStartThread(&sbx1, "sbx1",
|
sb1tp = sbStartThread(&sbx1, "sbx1",
|
||||||
waUnprivileged1, sizeof (waUnprivileged1),
|
waUnprivileged1, sizeof (waUnprivileged1),
|
||||||
|
@ -261,7 +262,6 @@ int main(void) {
|
||||||
chSysHalt("sbx1 failed");
|
chSysHalt("sbx1 failed");
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
|
||||||
/* Starting sandboxed thread 2.*/
|
/* Starting sandboxed thread 2.*/
|
||||||
sb2tp = sbStartThread(&sbx2, "sbx2",
|
sb2tp = sbStartThread(&sbx2, "sbx2",
|
||||||
waUnprivileged2, sizeof (waUnprivileged2),
|
waUnprivileged2, sizeof (waUnprivileged2),
|
||||||
|
@ -286,12 +286,21 @@ int main(void) {
|
||||||
/* Checking for user button, launching sandbox if pressed.*/
|
/* Checking for user button, launching sandbox if pressed.*/
|
||||||
if (palReadLine(LINE_BUTTON)) {
|
if (palReadLine(LINE_BUTTON)) {
|
||||||
if (!sbIsThreadRunningX(&sbx1)) {
|
if (!sbIsThreadRunningX(&sbx1)) {
|
||||||
|
|
||||||
|
/* Loading sandbox code.*/
|
||||||
ret = sbElfLoadFile((vfs_driver_c *)&sb1_root_overlay_driver,
|
ret = sbElfLoadFile((vfs_driver_c *)&sb1_root_overlay_driver,
|
||||||
"/bin/app.elf",
|
"/bin/app.elf",
|
||||||
&sbx1.config->regions[0].area);
|
&sbx1.config->regions[0].area);
|
||||||
if (CH_RET_IS_ERROR(ret)) {
|
if (CH_RET_IS_ERROR(ret)) {
|
||||||
chSysHalt("ELF");
|
chSysHalt("ELF");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Starting sandboxed thread 1.*/
|
||||||
|
if (sbStartThread(&sbx1, "sbx1",
|
||||||
|
waUnprivileged1, sizeof (waUnprivileged1),
|
||||||
|
NORMALPRIO - 1) == NULL) {
|
||||||
|
chSysHalt("sbx1 failed");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#if 0
|
#if 0
|
||||||
static uint8_t loadbuf[1024];
|
static uint8_t loadbuf[1024];
|
||||||
|
|
Loading…
Reference in New Issue