This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
I implemented the changes as per my plan, and (amazingly)
it appears to work.
But I'm afraid...
Instructions on how to test changes above:
Modify the makefile for your eCos application to compile sched.cc
(C++ mode) and unwind-sjlj.c (C mode). The linker will then use
the above code instead of the code from the GCC or eCos libraries.
Here is the test routine I ran to check that fc_static is a global
thread variable:
static void foo() throw (FirmwareException)
{
throw IllegalState();
}
static void stressTest(cyg_addrword_t t)
{
for (int i=0; i<100000; i++)
{
try
{
if ((i%10000)==0)
{
int x=0;
}
cyg_thread_yield();
foo();
}
catch (...)
{
}
}
}
static int stack[8192];
void testException() throw (FirmwareException)
{
cyg_handle_t handle;
cyg_thread thread;
cyg_thread_create(10,
stressTest,
NULL,
"silly",
stack,
sizeof(stack),
&handle,
&thread);
cyg_thread_resume(handle);
stressTest(0);
cyg_thread_suspend(cyg_thread_self());
}
int main(int argc, char **argv)
{
testException();
}
Øyvind
Attachment:
unwind.h
Description: Binary data
Attachment:
unwind-sjlj.c
Description: Binary data
Attachment:
unwind.inc
Description: Binary data
Attachment:
sched.cc
Description: Binary data
-- Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos and search the list archive: http://sources.redhat.com/ml/ecos-discuss
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |