Hesham, could you check what is the value of rtems_minimum_stack_size in your SPIKE executable?
2017-06-18 22:10 GMT+03:00 Denis Obrezkov <denisobrez...@gmail.com>: > Hello all, > > I was able to proceed further via setting rtems_minimum_stack_size > manually to 0x200. > Now I have another error, my backtrace: > #0 0x20403728 in _Internal_error (core_error=INTERNAL_ERROR_ > WORKSPACE_ALLOCATION) > at /home/reprofy/Projects/riscv/rtems/development/rtems/ > kernel/rtems-riscv/c/src/../../cpukit/score/src/interr.c:44 > #1 0x2040ec40 in _Workspace_Allocate_or_fatal_error (size=2976696) at > /home/reprofy/Projects/riscv/rtems/development/rtems/ > kernel/rtems-riscv/c/src/../../cpukit/score/src/wkspace.c:163 > #2 0x2040f0e6 in _Freechain_Initialize (freechain=0x80000c3c > <_RTEMS_tasks_Information+60>, allocator=0x2040ec16 > <_Workspace_Allocate_or_fatal_error>, number_nodes=41343, node_size=72) > at /home/reprofy/Projects/riscv/rtems/development/rtems/ > kernel/rtems-riscv/c/src/../../cpukit/score/src/freechain.c:31 > #3 0x20409346 in _Thread_Initialize_information (information=0x80000c00 > <_RTEMS_tasks_Information>, the_api=OBJECTS_CLASSIC_API, the_class=1, > maximum=3908149631, is_string=false, > maximum_name_length=4) at /home/reprofy/Projects/riscv/ > rtems/development/rtems/kernel/rtems-riscv/c/src/../.. > /cpukit/score/src/thread.c:68 > #4 0x20401dac in _RTEMS_tasks_Manager_initialization () at > /home/reprofy/Projects/riscv/rtems/development/rtems/ > kernel/rtems-riscv/c/src/../../cpukit/rtems/src/tasks.c:72 > #5 0x204021bc in rtems_initialize_executive () at > /home/reprofy/Projects/riscv/rtems/development/rtems/ > kernel/rtems-riscv/c/src/../../cpukit/sapi/src/exinit.c:95 > #6 0x2040031c in boot_card (cmdline=0x0) at /home/reprofy/Projects/riscv/ > rtems/development/rtems/kernel/rtems-riscv/c/src/lib/ > libbsp/riscv32/hifive1/../../shared/bootcard.c:76 > #7 0xffffcd98 in ?? () > > Is RTEMS trying to allocate 2976696 bytes? > It seems to me, that .data region is not properly initialized. What do you > think about this? > > 2017-06-18 1:31 GMT+03:00 Denis Obrezkov <denisobrez...@gmail.com>: > >> 2017-06-17 22:11 GMT+03:00 Denis Obrezkov <denisobrez...@gmail.com>: >> >>> >>>>> Can you run RTEMS hello world? Or does printf make that too large? If >>>> that is >>>> too large, you need to force the tests to switch to printk(). There is >>>> some magic >>>> in testsuites/configure.ac for that. >>>> >>>> The low ticker examples (especially the last one) will show configure >>>> options >>>> to cut memory use. >>>> >>>> But these are hacks on individual tests. If there is a simulator which >>>> has interrupts, >>>> I would be testing on it since you will be battling the architecture >>>> not a RAM limit. >>>> Your project is the port not to put RTEMS into a tiny memory space. :) >>>> >>>> --joel >>>> >>>> >>>>> -- >>>>> Regards, Denis Obrezkov >>>>> >>>> >>>> I was able to run the low ticker example further than in my earlier >>> attempts. >>> >>> But now I have a problem with it: >>> #0 memset (m=0xb98a0641, c=0, n=102) at ../../../../../gcc-7.1.0/newli >>> b/libc/string/memset.c:62 >>> #1 0x20403168 in _Heap_Initialize (heap=0xb98a0641, >>> heap_area_begin_ptr=0x80002456, heap_area_size=7082, page_size=8) >>> at /home/reprofy/Projects/riscv/rtems/development/rtems/kernel/ >>> rtems-riscv/c/src/../../cpukit/score/src/heap.c:230 >>> #2 0x20400954 in RTEMS_Malloc_Initialize (areas=0x80003f78, >>> area_count=1, extend=0x0) >>> at /home/reprofy/Projects/riscv/rtems/development/rtems/kernel/ >>> rtems-riscv/c/src/../../cpukit/libcsupport/src/malloc_initialize.c:40 >>> #3 0x20400378 in bsp_work_area_initialize_default >>> (area_begin=0x80000e10, area_size=12784) at ../../../../../.././hifive1/li >>> b/include/bsp/bootcard.h:158 >>> #4 0x204003c0 in bsp_work_area_initialize () at >>> /home/reprofy/Projects/riscv/rtems/development/rtems/kernel/ >>> rtems-riscv/c/src/lib/libbsp/riscv32/hifive1/../../shared/bs >>> pgetworkarea.c:61 >>> #5 0x204021bc in rtems_initialize_executive () at >>> /home/reprofy/Projects/riscv/rtems/development/rtems/kernel/ >>> rtems-riscv/c/src/../../cpukit/sapi/src/exinit.c:95 >>> #6 0x2040031c in boot_card (cmdline=0x0) at >>> /home/reprofy/Projects/riscv/rtems/development/rtems/kernel/ >>> rtems-riscv/c/src/lib/libbsp/riscv32/hifive1/../../shared/bootcard.c:76 >>> #7 0x20400064 in _end_clear_bss () at /home/reprofy/Projects/riscv/r >>> tems/development/rtems/kernel/rtems-riscv/c/src/lib/libbsp/r >>> iscv32/hifive1/start/start.S:116 >>> >>> I want to figure out, why it wants to use memset on these addresses, >>> because 0x80004000 is the maximum available address. >>> >>> >>> -- >>> Regards, Denis Obrezkov >>> >> >> I was able to proceed further after adding >> #define CONFIGURE_UNIFIED_WORK_AREAS >> to init.c of low_ticker example. >> Now I get an error: >> #0 0x2040d940 in _Chain_Initialize_node (the_node=0x80003ec0) at >> ../../cpukit/../../../hifive1/lib/include/rtems/score/chainimpl.h:127 >> #1 0x2040da82 in _Chain_Iterator_initialize (the_chain=0x80000320 >> <_User_extensions_List>, the_registry=0x8000032c >> <_User_extensions_List+12>, the_iterator=0x80003ec0, >> direction=CHAIN_ITERATOR_FORWARD) at ../../cpukit/../../../hifive1/ >> lib/include/rtems/score/chainimpl.h:1049 >> #2 0x2040de90 in _User_extensions_Iterate (arg=0x80003f18, >> visitor=0x2040dd48 <_User_extensions_Fatal_visitor>, >> direction=CHAIN_ITERATOR_FORWARD) >> at /home/reprofy/Projects/riscv/rtems/development/rtems/kernel/ >> rtems-riscv/c/src/../../cpukit/score/src/userextiterate.c:174 >> #3 0x204036c4 in _User_extensions_Fatal (source=INTERNAL_ERROR_CORE, >> error=4) at ../../cpukit/../../../hifive1/lib/include/rtems/score/userex >> timpl.h:307 >> #4 0x204036e8 in _Terminate (the_source=INTERNAL_ERROR_CORE, >> the_error=4) at /home/reprofy/Projects/riscv/r >> tems/development/rtems/kernel/rtems-riscv/c/src/../../ >> cpukit/score/src/interr.c:35 >> #5 0x20403730 in _Internal_error (core_error=INTERNAL_ERROR_INT >> ERRUPT_STACK_TOO_SMALL) >> at /home/reprofy/Projects/riscv/rtems/development/rtems/kernel/ >> rtems-riscv/c/src/../../cpukit/score/src/interr.c:44 >> #6 0x20403824 in _ISR_Handler_initialization () at >> /home/reprofy/Projects/riscv/rtems/development/rtems/kernel/ >> rtems-riscv/c/src/../../cpukit/score/src/isr.c:51 >> #7 0x20402170 in rtems_initialize_data_structures () at >> /home/reprofy/Projects/riscv/rtems/development/rtems/kernel/ >> rtems-riscv/c/src/../../cpukit/sapi/src/exinit.c:82 >> #8 0x204021bc in rtems_initialize_executive () at >> /home/reprofy/Projects/riscv/rtems/development/rtems/kernel/ >> rtems-riscv/c/src/../../cpukit/sapi/src/exinit.c:95 >> #9 0x2040031c in boot_card (cmdline=0x0) at >> /home/reprofy/Projects/riscv/rtems/development/rtems/kernel/ >> rtems-riscv/c/src/lib/libbsp/riscv32/hifive1/../../shared/bootcard.c:76 >> #10 0xffffcd98 in ?? () >> >> And I found out that rtems_minimum_stack_size variable is 0xab817bb3. >> And I don't know why - in the low ticker example it is set to 512. >> >> -- >> Regards, Denis Obrezkov >> > > > > -- > Regards, Denis Obrezkov > -- Regards, Denis Obrezkov
_______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel