Unable to load and run bare metal program in DDR from SDK 2015.2

Hello all,
I'm starting to work with Zynq and I'm quite a noob in this field.
I generated a system for a ZC702 board in which the connections to the DDR memory and the GPIO are correct.
When I try to run a "Hello world" example that writes such words via serial, I'm facing the problem that I can just run it from the internal ram on the Zynq, not from the DDR. I will try to explain this with more detail.
When I set the on-chip memory (initial address is 0x00000000) on the linker script and I run the program, the XMD console shows this:
XMD% Processor started. Type "stop" to stop processor
User Interrupt, Processor Stopped at 0x00101104
Processor Reset .... DONE
Downloading Program -- D:/50_EXPs/080715/Zynq_702_projects/zynq_book/zynq_book.sdk/hello_world_gpio/Debug/hello_world_gpio.elf
section, .text: 0x00000000-0x0000191b
section, .init: 0x0000191c-0x00001933
section, .fini: 0x00001934-0x0000194b
section, .rodata: 0x0000194c-0x00001963
section, .data: 0x00001968-0x00001ddb
section, .eh_frame: 0x00001ddc-0x00001ddf
section, .mmu_tbl: 0x00004000-0x00007fff
section, .init_array: 0x00008000-0x00008007
section, .fini_array: 0x00008008-0x0000800b
section, .bss: 0x0000800c-0x0000802f
section, .heap: 0x00008030-0x0000842f
section, .stack: 0x00008430-0x0000a02f
Download Progress.10.20.30.40.50.60.70.80.90.Done
Setting PC with Program Start Address 0x00000000
As you can see, al the addresses are correct. In this moment, the processor executes the program and everything is fine.
Then, if I select the DDR memory (initial address: 0x00100000) on the linker script generation, the console shows:
XMD% Processor started. Type "stop" to stop processor
Software Breakpoint 0 Hit, Processor Stopped at 0x000015bc
Processor Reset .... DONE
Downloading Program -- D:/50_EXPs/080715/Zynq_702_projects/zynq_book/zynq_book.sdk/hello_world_gpio/Debug/hello_world_gpio.elf
section, .text: 0x00100000-0x0010191b
section, .init: 0x0010191c-0x00101933
section, .fini: 0x00101934-0x0010194b
section, .rodata: 0x0010194c-0x00101963
section, .data: 0x00101968-0x00101ddb
section, .eh_frame: 0x00101ddc-0x00101ddf
section, .mmu_tbl: 0x00104000-0x00107fff
section, .init_array: 0x00108000-0x00108007
section, .fini_array: 0x00108008-0x0010800b
section, .bss: 0x0010800c-0x0010802f
section, .heap: 0x00108030-0x0010842f
section, .stack: 0x00108430-0x0010a02f
Download Progress.10.20.30.40.50.60.70.80.90.Done
Setting PC with Program Start Address 0x00100000
 But the program is not run and the processor is like "blocked".
There is just one scenario in which this second configuration works, and it's when the on-chip memories were previously loaded with the first configuration. This could indicate that the program counter is not pointing to the DDR, but to the on-chip memory. Then, when I select the DDR, if there is nothing on the memories of the chip, it does not execute anything.
Does anyone have any idea of what's exactly happening and how to fix it?
Thanks in advance!
Ignacio.

Hello, bwiec,
thank you four your response. I tried what you suggested, and it worked with no problem. I set the linker script so to store everything in OCM and executed the following piece of code:
u32 *memPtr;
u32 dataRead;
memPtr = 0x00100001; /* DDR address */
*memPtr = 0xdeadbeef;
u32 dataRead = *memPtr;
The value of dataRead is 0xdeadbeef;
So, apparently that was not the problem. But, fortunately, I found the solution to this issue. I will give the details in case it is useful for more people.
After triying to isolate the problem, I got to the following situation (I have been always working in SDK 2015.2):
A project created with SDK 2014.2, with Hardware Platform Specification, Board Support Package and C project was working fine.
The linker script of this project was indicating DDR usage in all the cases.
The BSP was using Standalone OS 4.1
When clicking Run, everything was working.
I performed a board reset to clean the DDR.
Then, if I changed the BSP to one created with the current version of SDK (2015.2), then the DDR memory was not being loaded properly, so the PC of the processor was pointing to the DDR base address but in that position there was no instruction, so it "blocked".
Then if I changed the "Referenced BSP" to the original one, it worked again.
If I went back to the 2015 BSP, then it worked, because the DDR was already loaded.
If a reset of the board was performed, the project referencing the 2015 BSP stopped working, because the DDR memory was again empty and not being loaded.
At the end, with the help of a coleage, I was able to find the problem, even though I don't really understand why this made my desing not to work:
The SW16 of the ZC702 board was set to: SW16(1 to 5) = "00010". This configuration:
Works with the BSP 2014 - referenced projects and the generated ".elf" files.
Does not work if the C projects point to a BSP generated in SDK 2015.2, because the DDR is not loaded.
The configuration that works for both cases is SW16(1 to 5) = "00000".
I personally don't understand exactly what's wrong with the previous configuration of the switch, since it affect to the booting and it was working like that in version 2014.2. Does anyone know why this happens?
Anyway I'm happy to have found the solution to this issue!
Regards,
Ignacio.

Similar Messages

  • Unable to load and run program in DDR from SDK

    Hello all,
    I'm starting to work with Zynq and I'm quite a noob in this field.
    I generated a system for a ZC702 board in which the connections to the DDR memory and the GPIO are correct.
    When I try to run a "Hello world" example that writes such words via serial, I'm facing the problem that I can just run it from the internal ram on the Zynq, not from the DDR. I will try to explain this with more detail.
    When I set the on-chip memory (initial address is 0x00000000) on the linker script and I run the program, the XMD console shows this:
    XMD% Processor started. Type "stop" to stop processor
    User Interrupt, Processor Stopped at 0x00101104
    Processor Reset .... DONE
    Downloading Program -- D:/50_EXPs/080715/Zynq_702_projects/zynq_book/zynq_book.sdk/hello_world_gpio/Debug/hello_world_gpio.elf
    section, .text: 0x00000000-0x0000191b
    section, .init: 0x0000191c-0x00001933
    section, .fini: 0x00001934-0x0000194b
    section, .rodata: 0x0000194c-0x00001963
    section, .data: 0x00001968-0x00001ddb
    section, .eh_frame: 0x00001ddc-0x00001ddf
    section, .mmu_tbl: 0x00004000-0x00007fff
    section, .init_array: 0x00008000-0x00008007
    section, .fini_array: 0x00008008-0x0000800b
    section, .bss: 0x0000800c-0x0000802f
    section, .heap: 0x00008030-0x0000842f
    section, .stack: 0x00008430-0x0000a02f
    Download Progress.10.20.30.40.50.60.70.80.90.Done
    Setting PC with Program Start Address 0x00000000
    As you can see, al the addresses are correct. In this moment, the processor executes the program and everything is fine.
    Then, if I select the DDR memory (initial address: 0x00100000) on the linker script generation, the console shows:
    XMD% Processor started. Type "stop" to stop processor
    Software Breakpoint 0 Hit, Processor Stopped at 0x000015bc
    Processor Reset .... DONE
    Downloading Program -- D:/50_EXPs/080715/Zynq_702_projects/zynq_book/zynq_book.sdk/hello_world_gpio/Debug/hello_world_gpio.elf
    section, .text: 0x00100000-0x0010191b
    section, .init: 0x0010191c-0x00101933
    section, .fini: 0x00101934-0x0010194b
    section, .rodata: 0x0010194c-0x00101963
    section, .data: 0x00101968-0x00101ddb
    section, .eh_frame: 0x00101ddc-0x00101ddf
    section, .mmu_tbl: 0x00104000-0x00107fff
    section, .init_array: 0x00108000-0x00108007
    section, .fini_array: 0x00108008-0x0010800b
    section, .bss: 0x0010800c-0x0010802f
    section, .heap: 0x00108030-0x0010842f
    section, .stack: 0x00108430-0x0010a02f
    Download Progress.10.20.30.40.50.60.70.80.90.Done
    Setting PC with Program Start Address 0x00100000
     But the program is not run and the processor is like "blocked".
    There is just one scenario in which this second configuration works, and it's when the on-chip memories were previously loaded with the first configuration. This could indicate that the program counter is not pointing to the DDR, but to the on-chip memory. Then, when I select the DDR, if there is nothing on the memories of the chip, it does not execute anything.
    Does anyone have any idea of what's exactly happening and how to fix it?
    Thanks in advance!
    Ignacio.

    Hello Ignacio,
    Are you able to step through at all with the debugger to see if it gets stuck somewhere in particular?
    As a test of DDR setup itself, what happens if you link to OCM but do some pointer access directly to DDR (maybe write 0xdeadbeef to 0x10000000, readback 0x10000000, then print it)? Does it work okay?

  • Is there any helpful link/tutorial on bare metal programming on MicroBlaze?

    Hi,
    I have a Spartan-6 EDK board. Because my target design will be a fast AGC adjustment (in 20 uS step making an adjustment), I think that it cannot use an OS (Is it  right?).
    For a bare metal programming on MicroBlaze, I do not see any description on this topic. Neither I find an answer in the web search. 
    Can you help me on my question?
    Thanks,

    hi
    refer to http://www.xilinx.com/support/documentation/sw_manuals/xilinx14_3/edk_ctt.pdf
    this talks about running a Microblaze system on bare-metal(Standalone OS)
    --hem

  • HT1926 I a m unable to install and run the lates - Error 7()Windows error 1114)t version of iTunes. I keep getting a rruntime error - R6034 and a windows error

    I am unable to install and run  the latest version ot iTunes. Getting "Runtime error - R6034. An application has made an attempt to load the C runtime library incorrectly"
    Error 7(Windows error 1114)

    Try and not duplicate these issues and do a search next time.
    Now load https://discussions.apple.com/thread/5826672?start=0&tstart=0
    and that Topic has the correct information to fix this problem.
    Regards
    pcbugfixer

  • How can I install and run a Windows program on my MacBook Pro/?

    How can I install and run a Windows program on my MacBook Pro?

    You have several options.
    1, Use a Virtual Machine like Vmware, Parallels etc... to Create a Virtual Windows Installation and Run your program in there.  A Virtual MAchine will runn in a Window on your Desktop and share your Mac's resources RAM HD space processor. Your MAc desktop will still be available while you run Windows install.
    http://www.parallels.com/
    2. Install Windows on a partition using Bootcamp. It will run a full installation of Windows you can boot into, and run your programs.  The Mac desktop will not available until your reboot the computer and start in OSx instead of Windows.
    https://www.apple.com/support/bootcamp/
    3. Use Wine /  Winebottler to run the Application without the need for a complete Windows installation.
    http://winebottler.kronenberg.org/

  • After load and run primary installation firefox it run to endless without load any thing

    after load and run primary installation firefox it run to endless without load any thing
    it run for more than 2 hours.
    this happened after install VLC with "groovorio" adware and find that Firefox can't update so I uninstall it to reinstall it without success.
    nothing happened no message appear but the download and installation for firefox still running endless.

    after load and run primary installation firefox it run to endless without load any thing
    it run for more than 2 hours.
    this happened after install VLC with "groovorio" adware and find that Firefox can't update so I uninstall it to reinstall it without success.
    nothing happened no message appear but the download and installation for firefox still running endless.

  • How to compile and run a java program?

    I am getting this error message, what to do?
    Exception in thread "main" java.lang.NoClassDefFoundError:
    Thanks for you help.
    Ajay

    Hello,
    I believe that this error is caused because when you
    compile and run a java program, you have to use the
    same name that is next to public class. For example,
    the program name is next to the word public class.
    For example, if a program began like this:
    public class Concat
    then the name of the program in this case is Concat
    and when you compile it you type: javac Concat.java
    when you run it type: java Concat
    depending on the name of your program.and depending on whether the class is in a package. And depending on what directory you are currently in.
    Also depending on if you set your class path you might
    have to type the above like this: jdk1.2.1\bin\javac
    Concat.java to compile, and to run you would have to
    type jdk1.2.1\bin\java Concat where you would replace
    Concat with the name of your program and replace
    jdk1.2.1 with the name of your version of java, that
    is again if you do not have your classpath set. Hope
    this helps.Your examples have nothing to do with whether the CLASSPATH is set--only with whether the PATH is set. And, it may not be jdkXXX\bin. The path to the JDK (in this case, to javac and java executables) could be anything. Classpath should be set on the command line. The OP probably did NOT set a classpath on the command line (preferred), or in the environment variables.
    Also, make sure you did not forget to put:
    public static void main(String[ ] args)
    on the line underneath the line where it says "public
    class Concat" where Concat is the name of your
    program. Again, I hope this helps.Irrelevant (with the info we have from the OP so far). The error says that the JVM can't even find the class--not that the class doesn't have a main. The "main" referred to in the error message is within the JVM itself.
    OP: Did you fix your problem? If not, what directory are your files in? Are they in a package? What command are you typing to get that error? That is, please tell us your entire command line.

  • How to compile and run PRO*C programs in Linux

    Hi all,
    This is my first post in this forum.
    I have Oracle 9i installed in linux platform .
    How can i compile and run Pro*C programs in linux.(i mean any commands or procedure to run these programs)
    please help me in this regard.
    Thanks in advance,
    Trinath Somanchi,
    Hyderabad .

    (1) How to compile the Pro*c program U got to have a makefile to compile a Pro*c program. It helps u in compiling and creating an excutable. Once U have created a makefile , just call "make" and it will do the compilation and create the executable as well.
    For a sample makefile visit
    http://asktom.oracle.com/~tkyte/proc_makefile/
    (2) How to run the Pro*c program ? and Once U have created an executable, U shall call that directly as any other linux command. Make sure U have the permissions to run the executable. If not give the permissions using chmod 777 executable
    (3)How to get the output of the program ?Question 2 and 3 are the same. I mean running and getting a output are the same

  • Can I write and run simple java programs in Xcode

    I need to write and run basic java programs on my mac. I would like to run it in Xcode, but I don't know how to set it up? Is there a way?

    Read the following discussion from last month on here:
    Can Xcode 4.5.1 compile/run java?

  • Forcing an application to load and run from memory

    Greetings,
    Is it possible to force an application to load and run only in RAM? I've got a V60 (i386) with 4gb of RAM running Solaris 10 (beta). We have an application that we would like to ensure loads and runs only in RAM and not swap to the disk. The machine is used for this one application that uses about 50% of one CPU at all times. Even with this application running, of the 4gb of RAM, 3.5gb are unused.
    The swap size is equal to the size of the RAM, but we want to prevent the application from ever using swap. Is that possible?
    Thanks,
    Bob

    Unless there is memory pressure solaris kernel does not throw away a process' pages onto swap.
    When you have 3.5Gb of unused main memory, there is no chance for this application pages to be
    put on swap.
    You can use 'pmap -x' to check RSS matches the process size.
    'swap -s' tells you how much swap is actually used.

  • How do I load and run a sequence from the Tools menu?

    If I can build a sequence to do something special, what's the syntax required to load and run it from a menu? This must be transparent to the customer. I know how to add menu items, but the tools customize window seems to be looking for an exe.

    When you go to tools>>customise and then add in an item to appear in a menu, you need to select sequence, rather than command.
    Hope that helps
    S.
    // it takes almost no time to rate an answer

  • OS is loaded and running but screen freezes on the loading screen

    My laptop is freezeing on the loading screen but the os is loaded and running. I know this because i was able to use command keys to open itunes and play music. At first i thought it was the hard drive so i replaced it and i am still having the same problems. I'm stumped, can anyone help me?
    Some one please help?

    "The gray boot screen with the apple and the loading ring."
    "i was able to use command keys to open itunes and play music."
    You could do that from the "gray boot screen?" Didn't know that was even possible!
    Disconnect all devices from your computer and do the following:
    Boot up from your install DVD and run *"Repair Disk"* from the Utility menu. If you are able to reach the desktop after doing the above, repair permissions and restart your computer afterwards.
    !http://i50.tinypic.com/izvwo1.gif!

  • Mail Slow to Load and Running Slowly

    Yesterday, I tried to copy a block of text from Sarari over to an email. Something I have done many times, but this time, Mail hung up with the spinning beachball and I eventually had to force quit Mail. Since that time Mail has taken minutes to load and runs slowly. I have trashed caches, repaired permissions and repaired the disk. Talked to Apple Support for 30 minutes or so this morning and tried all the stuff they suggested.
    Now Apple Support is suggesting archive and reinstall.
    My questions are:
    1. Does anyone here have an idea to try?
    2. Any thing to look out for on archive and reinstall if it comes to that?
    Thanks,
    Bob Crites

    As a more convenient alternative to a full Archive and Install, you may try reinstalling just the Combo Update for the type of computer and the version of Mac OS X you’re using, unless this is the version of Mac OS X that came with the computer:
    About the Mac OS X 10.4.8 Combo Update
    Mac OS X 10.4.8 Combo Update for PPC
    Mac OS X 10.4.8 Combo Update for Intel
    Take a look at the following articles for guidelines on how to properly install system updates:
    Troubleshooting installation and software updates
    Installing software updates
    Basically, you should verify/repair the startup disk before installing the update, no applications should be running while installing it, and you may experience unexpected results if you have third-party system software modifications (not normal applications) installed.

  • How to list schedualed and run-alone concurrent programs?

    Hello All,
    Can you, plz, guide me on list schedualed and run-alone concurrent programs in R12 instances?
    Regards,
    Tareq

    Can you, plz, guide me on list schedualed and run-alone concurrent programs in R12 instances?https://forums.oracle.com/forums/search.jspa?threadID=&q=Scheduled+AND+Concurrent+AND+Query&objID=c3&dateRange=all&userID=&numResults=15&rankBy=10001
    https://forums.oracle.com/forums/search.jspa?threadID=&q=Concurrent+AND+Requests+AND+Query&objID=c3&dateRange=all&userID=&numResults=15&rankBy=10001
    Please search the forum before posting similar questions.
    Thanks,
    Hussein

  • HT1461 Win 7 set up and running OK,but after go back from OSX the wireless net work stuck at identification cause the window working without Internet.Can we fix it or I must use Windows off line all the time? I already contact Microsoft 2 times for activa

    Win 7 set up and running OK,but after go back from OSX the wireless net work stuck at identification cause the window working without Internet.Can we fix it or I must use Windows off line all the time?
    I already contact Microsoft 2 times for activations.Hope I can fix from Apple instead.

    Ok....Got "Problem 2 and 4" solved....still trying to figure out this pop up everytime I click something...it's crazy how fast the pop up blinks...maybe once or 3 blinks then nothing till you close the window, then pop up then disappears...then click something
    else and pop up then gone....never seen this before...ive seen it when you tried to get online which turned out to be a virus on a customers cpu I worked on some years ago, I think it has something to do with the deleted files that I spoke of on last
    post...I notice it does it on start up as well.....think something is trying to install but not sure. Need to figure out where the appdata or start up folder and see whats in there....maybe it's in there.......so I might wait to see how it acts in the next
    couple days for "Problem 1"...but other than that it's running like a champ...so right now I just want to get the pop up windows to stop........thx again for everyone's help on this.
    John

Maybe you are looking for

  • Database Connectivity takes long time if one of the Node is down .. ??

    Hello All, Env: 10.2.0.4 on Solaris 10 I have 2 nodes. When Node1 server is down, it takes long time to connec to the database. tnsping would give "OK(2050ms)". Below is the tnsalias. RAC_test  =   (DESCRIPTION =      (ADDRESS = (PROTOCOL = TCP)(HOST

  • MRP View

    When I update a value on the MRP1 view using MM02, am I always required to provide plant and storage location?  The only thing I can see that points to storage location is MARC-LGFSB on MRP2 view.  It points to LGORT in the check table.  Could there

  • Related party concept in import procurement?

    Hi What is related party concept in import procurement. My client is telling that there should be 1% deposit with customs for each imported purchase with related party.. what are the exact concept and legal implications in the related party procureme

  • Moving Photos between users

    Hi I am trying to clean up computer & am new to iPhoto. We have 5 members of family + 1 user for family photos as users on one mac. All have down loaded photos into their individual photo library resulting in a massive double up of pics & also pic th

  • Error GI with reference to Reservation

    Hi Folks, I facing an error while posting Goods Issue with reference to Reservation Movement type 201, i tried SE16 for table XMRES but i did not any table, system through a error message is Please through some lights Regards, B V