IIija,

Just to be clear, I created a new RedBoot project, imported your file, then 
changed the IP to a fixed IP. Then I ran my application just as I documented in 
the previous mail.

Mike


On Dec 3, 2012, at 7:18 PM, Michael Jones <mjo...@linear.com> wrote:

> IIija,
> 
> I used your version of the RedBoot project and got the same results. Perhaps 
> you can take a look at my application project and see if I have done 
> something wrong. If you have a hello world project that works, I could run it 
> and see if it works here.
> 
> Mike
> 
> 
> 
> 
> On Dec 3, 2012, at 12:12 PM, Ilija Kocho <ili...@siva.com.mk> wrote:
> 
>> Mike
>> 
>> I need insight in your RedBoot configuration. It would help if you send
>> me the ECM file (File->Export...)
>> 
>> I also attach the ECM file of my RedBoot that works for small "Hello
>> world" app.
>> Importing it in a _fresh_ RedBoot configuration should give you same
>> configuration as mine (provided that you have patched the latest SVN
>> version).
>> I tested it for loading from RedBoot prompt but not for GDB since at
>> present I am away from my lab.
>> Load works for both SREC and ELF files.
>> 
>> FYI you can also initialize RedBoot configuration (fconfig -i) so you
>> won't need to enter tftp host every time.
>> 
>> I hope this will work for you.
>> 
>> Ilija
>> 
>> 
>> On 03.12.2012 01:01, Michael Jones wrote:
>>> IIila,
>>> 
>>> I implemented what you sent, and ended up with an infinite loop of 
>>> SIGTRAPs. So I am stuck, but at least I have Insight/gdb running and can 
>>> see what the code is doing. But, I don't know enough about the memory usage 
>>> to know what is wrong.
>>> 
>>> DETAILS
>>> ------------
>>> 
>>> I made some progress. I updated the files, and then did the following:
>>> 
>>> 1) Put memory checking back into the RedBoot image
>>> 2) In the application config, changed to RAM. Built the app, etc.
>>> 3) telnet into RedBoot
>>> 4) Load with
>>>   load -v -h x.x.x.x hello.srec
>>> 5) go
>>> 
>>> The command line then becomes unresponsive, and nothing prints.
>>> 
>>> I then change printf to diag_printf, just in case that is the problem. Same 
>>> results.
>>> 
>>> So then I compile up Insight so I have a debugger and then:
>>> 
>>> A) Connect to RedBoot with Insight
>>> B) Load image
>>> 
>>> Loading section .rom_vectors, size 0x8 lma 0x1fffe400
>>> Loading section .ARM.exidx, size 0x10 lma 0x1fffe408
>>> Loading section .text, size 0x6930 lma 0x1fffe418
>>> Loading section .rodata, size 0x2004 lma 0x20004d48
>>> Loading section .data, size 0x1b0 lma 0x20006d58
>>> Start address 0x1fffe419, load size 35580
>>> 
>>> I see a break point at the first line in main:
>>> 
>>> int main(void)
>>> {
>>> *** diag_printf("Hello 1, eCos world!\n");
>>> diag_printf("Hello 2, eCos world!\n");
>>> return 0;
>>> }
>>> 
>>> 
>>> C) Tell image to continue via Control | Continue
>>> 
>>> The debugger then stops in file vectors.S at line 101:
>>> 
>>> 86  
>>> //==========================================================================
>>>     87      // Fake entry point.
>>>     88      //
>>>     89      // The ELF file entry point points here. When loading an 
>>> executable
>>>     90      // via RedBoot/Stubs or via JTAG the PC will be set to this 
>>> address.
>>>     91      // The code here sets up the SP and branches to the reset VSR in
>>>     92      // emulation of the hardware reset behaviour.
>>>     93      
>>>     94              .align  2
>>>     95              .global reset_vector
>>>     96              .thumb
>>>     97              .thumb_func
>>>     98              .type   reset_vector, %function
>>>     99      reset_vector:
>>>     100     
>>> -   101             ldr     sp,=hal_startup_stack
>>> -   102             b       hal_reset_vsr
>>>     103     
>>>     104             .pool
>>> 
>>> 
>>> Any time I do a continue, I stop at this line 101 and the gdb console says:
>>> 
>>> Program received signal SIGTRAP, Trace/breakpoint trap.
>>> reset_vector () at 
>>> /opt/ecos/ecos-3.0/packages/hal/cortexm/arch/current/src/vectors.S:101
>>> 
>>> My intuition is that "b" means branch, and the hal_reset_vsr either is 
>>> pointing to reset_vector, or something else causes the SIGTRAP, leading 
>>> back here.
>>> 
>>> At this point I have to admit ignorance of how traps work. But moving 
>>> forward, I did a step next line in the debugger. This resulted in an 
>>> infinite wait for a response that never came. So I closed Insight and 
>>> stopped.
>>> 
>>> A little research says that SIGTRAP is the processor noting an instruction 
>>> was hit, and then GDB should handle the breakpoint.
>>> 
>>> My interpretation of the GDB console is that the target trapped at 
>>> vectors.S:101, but I used the debugger to put a break point at the first 
>>> instruction in main. I suppose it is possible this is where it thinks the 
>>> trap goes...
>>> 
>>> but I am guessing something is in the wrong place, like loading the program 
>>> image stepped on part of RedBoot's SRAM code or tables.
>>> 
>>> Any insights?
>>> 
>>> Mike
>>> 
>>> 
>>> On Dec 2, 2012, at 3:12 AM, Ilija Kocho <ili...@siva.com.mk> wrote:
>>> 
>>>> Hi Mike
>>>> 
>>>> On 01.12.2012 22:07, Michael Jones wrote:
>>>>> BACKGROUND
>>>>> ----------------------
>>>>> 
>>>>> I am having a little bit of trouble trying to get my first hello world 
>>>>> app on a K60 Tower Board.
>>>>> 
>>>>> I have RedBoot running from ROM and I can ping the ethernet port, so 
>>>>> presumably I will eventually get GDB to talk to it.
>>>>> 
>>>>> I am having trouble building an initial app that uses the ROM monitor. 
>>>>> Following the example in the eCos book, I went hunting for 
>>>>> CYGSEM_HAL_USE_ROM_MONITOR, enabled it and then set startup to SRAM. This 
>>>>> seems the obvious way to run and debug.
>>>>> 
>>>>> PROBLEM
>>>>> --------------
>>>>> 
>>>>> I am getting a conflict I don't know how to resolve. I have set 
>>>>> CYG_HAL_STARTUP_VAR = SRAM. This results in CYG_HAL_STARTUP = SRAM by 
>>>>> calculation.
>>>>> 
>>>>> But I get a conflict from CYGSEM_HAL_USE_ROM_MONITOR that wants 
>>>>> CYG_HAL_STARTUP == RAM
>>>> SRAM and RAM startups are not the same. RAM startup is intended for
>>>> using under control of RedBoot and has some special properties: RAM,
>>>> unlike other startup types uses RedBoot's vectors, etc...
>>>> 
>>>> SRAM startup is kind of "stand-alone" in a way it does not depend on
>>>> RedBoot (but depends on JTAG debugger)
>>>> 
>>>>> QUESTIONS
>>>>> -----------------
>>>>> 
>>>>> 1) Can I ignore this conflict and get the monitor and app to work?
>>>> I'm afraid not because, SRAM startup collides with RedBoot.
>>>>> 2) Is there a better approach?
>>>> The right approach is to create RAM startup. It could live on variant
>>>> level and be available to all Kinetis platforms (though some may have
>>>> too little memory to utilize it).
>>>> The attached patches should produce proper variant-level RAM startup.
>>>> 
>>>> I did not add it from beginning since I consider internal SRAM too
>>>> little for practical work, seems that other people have different view.
>>>> You are not the first to look for.
>>>> This being said, I am considering to add this startup to the main
>>>> repository. Would you open a Bug on Bugzilla?
>>>> 
>>>>> 3) Has anyone succeeded to use RedBoot on the K60 and can you supply an 
>>>>> example config project that works that I can look at?
>>>> You may want to try this:
>>>> http://bugs.ecos.sourceware.org/show_bug.cgi?id=1001623 but beware, it
>>>> is experimental, and at present it may be broken as it's not synced with
>>>> recent Kinetis patches.
>>>> Take care not to lock your Kinetis flash - You have been warned :)
>>>> 
>>>> I hope this helps and I would appreciate feedback.
>>>> 
>>>> Regards
>>>> Ilija
>>>> <kinetis_var_ram-startup_cdl_121202.diff><kinetis_var_ram-startup_mlt_121202.diff>--
>>>>  
>>>> Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
>>>> and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
>>> 
>> 
>> <rb_k60.ecm>-- 
>> Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
>> and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
> 
> 
> --
> Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
> and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
> 


--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss

Reply via email to