Problems in boot_card() with configuration

Joel Sherrill joel.sherrill at OARcorp.com
Thu Feb 14 20:14:27 UTC 2013


On 2/14/2013 2:00 PM, Matthew J Fletcher wrote:
> 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
This isn't code but this is enough to see that what is in memory and used
by the code is NOT what was in the object. The workspace_address field
is 0. The second field is the size and is 0x00010830. You saw 0xFFFFFFFFF.

Either the download didn't go where you thought, memory access isn't
setup write, etc.

Download and look at those two addresses BEFORE you run at all.
If you don't see those values, it is nothing to do with RTEMS. :)

.bss is uninitialized global and static date. It gets zeroed.
.data is your global and static data that is initialized.
> 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
> _______________________________________________
> 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




More information about the users mailing list