element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • 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 UART-0 hangs when UART-1 receive data in AMP
  • 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 5 replies
  • Subscribers 315 subscribers
  • Views 410 views
  • Users 0 members are here
Related

UART-0 hangs when UART-1 receive data in AMP

fayyazrafiq
fayyazrafiq over 11 years ago

Hi All,

I am using ZEDBoard with AMP application. I configured UART0 receive interrupt for CPU0 and UART1 receive interrupt for CPU1. The program works fine, if I do not have any character receive from UART-1. As soon as, i send some character from the terminal program for UART1, UART0 also stop sending data out. I do not know what is problem, It seems something is shared between the CPU0 and CPU1. Although, it should not be the case because i am using separate UART for each CPU. Any help is highly appreciated.

Regards
Fayyaz

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

    Hi Fayyaz,
      My guess on this is that the shared entity you are seeking is the Cypress USB-to-UART driver on your host system.  Although you are using separate UARTs on your target, I suspect if you attempt to use both at the same time the driver will not be able to separate the streams.  You will need to manage the dual UARTs through some type of mutex.

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

    Hi

    Thanks for the reply but I did not understand, why i need to use mutex. I will explain it little bit more.

    Actually, I am using FreeRTOS on both cores and one of the core is using UART0 routed to PL package pins while the other is using UART1 (by default routed to Cypress USB-to-UART bridge). Both UARTs receives data on interrupts. Normally the UART0 send/receive is ok, However, as soon as i sent data from hyper terminal to UART1, UART0 also stop sending data.

    Is this problem is due to Scugic distributor unit? because previously i selected the -DUSE_AMP =1 compiler option. But when i saw, when this compiler option is set, cpu1 does not initialize the interrupt distributor unit. In case of linux plus FreeRTOS, this compiler option is set. I am not sure, what to do?

    Any help is highly appreciated.

    Regards
    Fayyaz

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

    You didn't supply enough information to fully frame your question.  I see now this is a different problem, so it needs a different solution.  As you state in your question, this could be a problem with the interrupt reaching the processor, but there are also a number of other possibilities.  The first step is to try to narrow down the problem.  I would suggest setting a breakpoint inside the interrupt handler running on the core where you lose UART traffic - you'll have to be a little clever with when you activate it to avoid having it trip before you want it to.  If it does get hit, the interrupt is not the problem.  If it doesn't, then is the interrupt being generated by the UART correctly?  You should be able to check that with ILA/Chipscope.  If it is generated, and the handler doesn't see it, then it must be masked out, so you'll need to look at the low level interrupt function to see what can be done to make sure you don't miss an interrupt while the first handler instance is servicing.  If you are using your own interrupt mechanism, make sure you aren't spending too long inside the handler.

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

    Hi

    Thanks again and sorry for incomplete explanation. If you need more explanation, i can provide you.

    I cannot run the AMP application in debugger because i have to run the both applications (cpuo and cpu1). For info, i am using sdk 14.5. I am using the SD card for this purpose. Could you please suggest me, how can i debug the application and where can i found the notes for xilinx system debugger for debugging both applications simultaneously.

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

    Hello Fayyaz,

     

    Take a look at the Xilinx appnote xapp1079. It is a bare metal AMP example on the Zynq and shows how to debug both cores:

     

    http://www.xilinx.com/support/documentation/application_notes/xapp1079-amp-bare-metal-cortex-a9.pdf

     

    -Gary

    • 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