git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@15341 27425a3e-05d8-49a3-a47f-9c15f0e5edd8

This commit is contained in:
Giovanni Di Sirio 2022-01-10 17:04:41 +00:00
parent 3bceb7fd9d
commit abf9ce61a6
2 changed files with 15 additions and 6 deletions

View File

@ -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&#10;monitor reset init&#10;monitor sleep 50&#10;monitor erase_address pad 0x08180000 0x00080000&#10;load /home/giovanni/Projects/ChibiStudio/chibios_trunk/demos/various/SB-CLIENT-256k-08180000-128k-20060000/build/sb.elf&#10;load /home/giovanni/Projects/ChibiStudio/chibios_trunk/demos/various/SB-CLIENT-256k-081C0000-128k-20080000/build/sb.elf&#10;"/> <stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.initCommands" value="set remotetimeout 20&#10;monitor reset init&#10;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"/>

View File

@ -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];