Problems in boot_card() with configuration

Matthew J Fletcher amimjf at gmail.com
Thu Feb 14 20:00:37 UTC 2013


On 14/02/13 19:38, Gedare Bloom wrote:
> On Thu, Feb 14, 2013 at 2:16 PM, Joel Sherrill
> <joel.sherrill at oarcorp.com> wrote:
>> On 2/14/2013 1:09 PM, Matthew J Fletcher wrote:
>>>
>>> Hi,
>>>
>>> I am using RTEMS 4.10.2, and a custom BSP based on the ARM rtl22xx.
>>>
>>> I am running through the asm startup ok and calling into boot_card(),
>>> stepping through its all working fine, work_area_start, work_area_size,
>>> heap_start and heap_size are setup as i expect from my linkscript.
>>>
>>> But the test of "work_area_size <= Configuration.work_space_size" fails
>>> because Configuration.work_space_size looks like 0xfffffff, the only
>>> place that assigns to Configuration.work_space_size is a few lines
>>> further down.
>>>
>>> Does this code presume that the BSP has set the Configuration structure
>>> to zero, or the whole memory ? even so the aforementioned test seems odd
>>> as its just testing memory has been initialised.
>>>
> We do assume the .bss section is initialized to 0, although I'm not
> sure if that is still a necessary assumption. But I don't think that
> is the problem here, because if the value of
> Configuration.work_space_size was 0 then this test would still fail.
> 
> The work_space_size calculation is done in the
> cpukit/sapi/include/confdefs.h file, but that can be a bit messy to
> try to figure out.
> 
>>> Or am i missing some RTEMS initialisation call that needs to be done
>>> before boot_card() ?
>>
>> No but there may be some basic C language assumptions not
>> being met. Configuration is in the .data section and that value
>> does not look like it was initialized to.
>>
>> Is your download correct?
>>
> You can disassemble your binary image and inspect the value of the
> Configuration.work_space_size field in the data section.

Sorry i dont seem to have the objdump skills, i did a -D (disassemble
all sections), although it produced massive output i dont see a
structure called 'Configuration', i get a block like

814085f4 <Configuration>:
814085f4:	00000000 	andeq	r0, r0, r0
814085f8:	00010830 	andeq	r0, r1, r0, lsr r8
814085fc:	00000000 	andeq	r0, r0, r0
81408600:	00002710 	andeq	r2, r0, r0, lsl r7
81408604:	00000032 	andeq	r0, r0, r2, lsr r0
81408608:	8118d3a0 	tsthi	r8, r0, lsr #7
8140860c:	00001000 	andeq	r1, r0, r0
81408610:	00001000 	andeq	r1, r0, r0
	...
81408620:	00000002 	andeq	r0, r0, r2
81408624:	00000002 	andeq	r0, r0, r2
81408628:	8140868c 	smlalbbhi	r8, r0, ip, r6
8140862c:	00000001 	andeq	r0, r0, r1
81408630:	8140866c 	cmphi	r0, ip, ror #12

is it possible to pretty print that in some way ?


>>>
>>> - Matthew
>>> _______________________________________________
>>> rtems-users mailing list
>>> rtems-users at rtems.org
>>> http://www.rtems.org/mailman/listinfo/rtems-users
>>
>>
>>
>> --
>> Joel Sherrill, Ph.D.             Director of Research & Development
>> joel.sherrill at OARcorp.com        On-Line Applications Research
>> Ask me about RTEMS: a free RTOS  Huntsville AL 35805
>> Support Available                (256) 722-9985
>>
>>
>> _______________________________________________
>> rtems-users mailing list
>> rtems-users at rtems.org
>> http://www.rtems.org/mailman/listinfo/rtems-users



More information about the users mailing list