element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Avnet Boards Forums
  • Products
  • Dev Tools
  • Avnet Boards Community
  • Avnet Boards Forums
  • More
  • Cancel
Avnet Boards Forums
Software Application Development Zedboard hangs when running HL code
  • Forum
  • Documents
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Avnet Boards Forums to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Not Answered
  • Replies 6 replies
  • Subscribers 330 subscribers
  • Views 649 views
  • Users 0 members are here
Related

Zedboard hangs when running HL code

jesusmgonzalez
jesusmgonzalez over 10 years ago

Hi!

I'm trying to run some High Level code generated from Matlab/Simulink. I set all kind of software optimizations regarding embedded destination platform, such as RAM optimization and complex reduction, as well.

But he problem arises when I try to run the first step. The Zedboard freezes and the XSDK returns a debug error. I don't know if the problem is related with memory consumption. The total reserved space in one iteration is at least 20KB of data.

Does anybody know how to solve this problem? Could I add any hardware accelerator in PlanAhead?

Thanks,

  • Sign in to reply
  • Cancel
  • Former Member
    0 Former Member over 10 years ago

    Zedboard hangs is not enough information to help you.

     

    What version of the Xilinx tools and Matlab are you using?

    What is your host PC OS?

    Is your application standalone or running under an OS?

    What is the error returned by XSDK?

    What does your overall application in general and your Matlab generated code specifically attempt to accomplish?

    Is this code modeled on some existing app note or reference design? If so what is it and did it work on your platform?

    Do you have a baseline design that works at some point before you add your new code? It is generally a good practice to build up an application step by step as you develop it. In reverse, in debug, it is often useful to remove modules until the application no longer fails.

     

    -Gary

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • jesusmgonzalez
    0 jesusmgonzalez over 10 years ago in reply to Former Member

    Hi!
    Thanks for the answers and comments.

    - Matlab/Simulink versiu00F3n 2014 is used in order to generate C/C++ of a small Kalman filter (some matrices and vectors).
    - XSDK and PlanAhead used version is 14.7.
    - My host PC OS os Windows 7, and the application is suppoused to run on baremetal.
    - The XSDK returned error is lost of communication with the Zed, during debug mode or run mode.
    - Even when I generate a .mcs boot image, in the first step of the main function (I additionally turn on a LED) the blue LED indicating everything is done turns off.
    - The code is not in any existing App note.
    - The problem is that I think there is not enough memory to run the application without OS. Is there any method in XSDK to see the memory consumed by the running application, in debug mode?
    - I've done several other projects following the same steps, importing Matlab generated code into the Zedboard, and everything was fine. The problem is that I don't understand why the Zedboard hangs when try to run step by step my application, and why when I set the Zed on Flash boot at the very first step board configuration gets off.

    Thanks!



    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • zedhed
    0 zedhed over 10 years ago

    Hi jesusmgonzalez,

    Based upon what I am reading above, it sounds like you are swinging for the fences to get a home-run right out of the box.  You mentioned that you have done several other projects with Matlab generated code which ran just fine.  Can you elaborate on what is different between this project and the ones that you know work?  Do smaller applications work where this new one does not?  Have you verified that those other older projects still work well on this hardware platform and that you are creating the new project code with the same exact toolflow of SDK 14.7 + Matlab/Simulink 2014 as the old projects?

    If you are able to rule out any tool chain differences, then I have one further suggestion that has bitten me several times over my career and that is stack and heap memory allocation sizing.  AFAIK, SDK does not have the ability to detect when this occurs which is what makes this a particularly insidious problem.  You may be coding along just fine and then all of a sudden your latest application build starts locking up, seemingly randomly.  This sort of thing drives you insane until you realize that you might be running out of space in either the stack or heap locations and that your latest line of code pushed you past that boundary into no man's land.

    Here are some links that might help you dig out of this problem:

    http://forums.xilinx.com/t5/Embedded-Development-Tools/getting-the-usage-of-Heap-and-stack-size/td-p/96080

    http://forums.xilinx.com/t5/Embedded-Processor-System-Design/Zynq-and-SDK-14-4-Stack-Size-Limitation/td-p/356173

    According to this last post, SDK should be able to tell you if you are running out of statically assigned memory space.  However, unless you are using special tools or an OS in your development I don't think there are many IDEs that will be able to tell you when you have run out of dynamically assigned memory space.

    Regards,

    -Kevin

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • jesusmgonzalez
    0 jesusmgonzalez over 10 years ago

    Hi!

    Many thanks for your comments and suggestions. Regarding the first part of your comments, Matlab projects I've deplyed in the Zedboard are current projects, so I'm just doing exactly the same steps in both projects. The main difference is that in the second kind of projects I've just doing several matrix operations, reserving an amount of memory ap. 20 KB. I don't think this is the problema, because I know there is a huge amount of available DDR memory for the PS.

    Regards,

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • zedhed
    0 zedhed over 10 years ago

    Hi jesusmgonzalez,

    Yes, you are correct in that the amount of memory available to the PS is relatively large.  What I am suggesting is that you double check to see if the space allocated to your call stack and heap area is sufficient for the application you are running.

    For example, I just created a new project using the Empty Application template on the build in zed_hw_platform in SDK.  Here are the default stack and heap allocations that SDK creates for you: 

    image

    You can see that they are rather small at 2K each, so if you are running a complex application with nested function calls that go rather deep, my suggestion is to check and make sure that you are not overflowing the stack space.  Also, if you are operating on dynamically allocated memory (any space created with malloc() or call to a class constructor) make sure you are not running our of heap space.

    SDK gives you the ability to modify the size of these areas within your lscript.ld file or create a new one using the Xilinx Tools-->Generate linker script window.

    Regards,

    -Kevin

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • jesusmgonzalez
    0 jesusmgonzalez over 10 years ago

    Hi Kevin,

    Thanks for your support. Indeed, the amount of memory available in the system was what you commented.

    But now I have another problem. After increasing the size of memory available in the system, my application runs for several iterations, using interrupts from uart_lite, and suddenly (with no changes in the code or inputs) the interrupts in this uart_lite turns off.  That is, the receive handler is no longer called even when data is available in the serial port.

    Does anybody have any suggestions?

    Thanks in advance!

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube