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 SD Card example design using standalone?
  • 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 20 replies
  • Subscribers 331 subscribers
  • Views 4396 views
  • Users 0 members are here
Related

SD Card example design using standalone?

Former Member
Former Member over 12 years ago

Hello folks,

Quick question:  Is it possible to do read/writes to an SD card using standalone (bare-metal) OS? 

I tried building a Zynq-based SDK project with a standalone BSP + xilfatfs.  However when I do so I get this error in SDK:

ERROR:EDK:3900 - issued from TCL procedure "::sw_xilfatfs_v1_00_a::xilfatfs_drc"
   line 15
   xilfatfs () - Sysace HW module not present or not accessible from this
   processor. FATfs cannot be used without this module

So my guess is, standalone OS doesn't have libraries for SD/MMC support...

I know the typical flow is to use U-boot/Linux, but my application will be *dumb* simple and U-boot/Linux would be unnecessary overhead. 

The application will simply move a file from SD card over to memory, and buffer the data via GPIOs to an external device.

Thanks,

Eddie

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

    I'm currently working on SDCard access for my real-time operating system, which is based on FreeRTOS. Unfortunately there seems to be little to no support from Xilinx for doing this.

    The other problem is that there really isn't much useful information for handling SD cards using the SDIO protocol. (SPI mode there is a lot of documentation from hobbyists etc, as seen from the provided link).

    There are the SDHCI simplified specs, which are useful, but don't seem to provide all the information you need.

    Anyway, fortunately there are a few reference drivers you can look at for help.

    Obviously there's linux, which provides the most fully featured driver possible, and its pretty complex. As mentioned earlier I'd avoid this unless you have to.

    Also the raspberrypi is using an SDHCI controller, similar to that in Zynq.

    See:
    https://github.com/jameswalmsley/rpi-boot/blob/master/emmc.c

    They seem to have full read access to the card, and from that write access should be trivial.

    In anycase, I shall have my fully featured driver ready in 2/3 weeks from now (hopefully). So checkout:
    https://github.com/jameswalmsley/bitthunder/

    The source will be found under: drivers/mmc/host/sdhci.c

    Hope this helps someone.

    James

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

    I'm currently working on SDCard access for my real-time operating system, which is based on FreeRTOS. Unfortunately there seems to be little to no support from Xilinx for doing this.

    The other problem is that there really isn't much useful information for handling SD cards using the SDIO protocol. (SPI mode there is a lot of documentation from hobbyists etc, as seen from the provided link).

    There are the SDHCI simplified specs, which are useful, but don't seem to provide all the information you need.

    Anyway, fortunately there are a few reference drivers you can look at for help.

    Obviously there's linux, which provides the most fully featured driver possible, and its pretty complex. As mentioned earlier I'd avoid this unless you have to.

    Also the raspberrypi is using an SDHCI controller, similar to that in Zynq.

    See:
    https://github.com/jameswalmsley/rpi-boot/blob/master/emmc.c

    They seem to have full read access to the card, and from that write access should be trivial.

    In anycase, I shall have my fully featured driver ready in 2/3 weeks from now (hopefully). So checkout:
    https://github.com/jameswalmsley/bitthunder/

    The source will be found under: drivers/mmc/host/sdhci.c

    Hope this helps someone.

    James

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

    jameswalmsley, i am working with raspberry pi bare metal programming, i found your rpi-boot project very useful. i have few clarification from emmc.c

    how do i use sdread and sdwrite functions?

    what is the block device structure ?

    how do i find block device values to the sd card?

    it would be greate help if you explain me little bit. sample code also fine

     

    thank you 

    • 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