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"/>
<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.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"/>
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadImage" 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 thread_t *sb1tp;
/*===========================================================================*/
/* Main and generic code. */
/*===========================================================================*/
@ -125,8 +123,10 @@ static void SBHandler(eventid_t id) {
(void)id;
if (chThdTerminatedX(sb1tp)) {
chprintf((BaseSequentialStream *)&SD2, "SB1 terminated\r\n");
if (!sbIsThreadRunningX(&sbx1)) {
msg_t msg = sbWaitThread(&sbx1);
chprintf((BaseSequentialStream *)&SD2, "SB1 terminated (%d)\r\n", msg);
}
}
@ -253,6 +253,7 @@ int main(void) {
vfsClose(np);
#endif
#if 0
/* Starting sandboxed thread 1.*/
sb1tp = sbStartThread(&sbx1, "sbx1",
waUnprivileged1, sizeof (waUnprivileged1),
@ -261,7 +262,6 @@ int main(void) {
chSysHalt("sbx1 failed");
}
#if 0
/* Starting sandboxed thread 2.*/
sb2tp = sbStartThread(&sbx2, "sbx2",
waUnprivileged2, sizeof (waUnprivileged2),
@ -286,12 +286,21 @@ int main(void) {
/* Checking for user button, launching sandbox if pressed.*/
if (palReadLine(LINE_BUTTON)) {
if (!sbIsThreadRunningX(&sbx1)) {
/* Loading sandbox code.*/
ret = sbElfLoadFile((vfs_driver_c *)&sb1_root_overlay_driver,
"/bin/app.elf",
&sbx1.config->regions[0].area);
if (CH_RET_IS_ERROR(ret)) {
chSysHalt("ELF");
}
/* Starting sandboxed thread 1.*/
if (sbStartThread(&sbx1, "sbx1",
waUnprivileged1, sizeof (waUnprivileged1),
NORMALPRIO - 1) == NULL) {
chSysHalt("sbx1 failed");
}
}
#if 0
static uint8_t loadbuf[1024];