Nios® II Embedded Design Suite (EDS)
Support for Embedded Development Tools, Processors (SoCs and Nios® II processor), Embedded Development Suites (EDSs), Boot and Configuration, Operating Systems, C and C++
Announcements
Intel Support hours are Monday-Fridays, 8am-5pm PST, except Holidays. Thanks to our community members who provide support during our down time or before we get to your questions. We appreciate you!

Need Forum Guidance? Click here
Search our FPGA Knowledge Articles here.

SD Card Header Problem

Altera_Forum
Honored Contributor II
906 Views

I'm using an SD Card core in my SOPC builder system. In my Nios II IDE program I've included the associated header file. When I build the project I get the following error: 

 

/cygdrive/c/altera/90/ip/altera_up_sd_card_avalon_interface/HAL/inc/altera_up_sd_card_avalon_interface.h:27: error: expected identifier before "false" 

 

In altera_up_sd_card_avalon_interface.h, line 27 there is the following code: 

typedef enum e_bool { false = 0, true = 1 } bool; 

 

what is the problem ? I guess there should be no problem with the header files included with the IP cores and we do not need to edit them!!!!!!!!!!! 

tnx in advance 

0 Kudos
9 Replies
Altera_Forum
Honored Contributor II
164 Views

Hi moeen, 

Probably your projects includes somewhere stdbool.h header, which already has bool type and true/false defined 

 

If you can't fix it, you can try adding the following undefs just before including the header with the typedef 

# undef false 

# undef true 

# undef bool
Altera_Forum
Honored Contributor II
164 Views

I did that, it didnt solve the problem! :(

Altera_Forum
Honored Contributor II
164 Views

Mmmm, 

I tried to include the same typedef in one of my projects: I get the error but the undef trick works and it fixes it. 

Maybe you have different compiler settings. C++ support, Small C library, or any other similar options.
Altera_Forum
Honored Contributor II
164 Views

I have chosen the small C library, could it be the problem? but unchecking it would need a very large amount of memory! :(

Altera_Forum
Honored Contributor II
164 Views

Do you use c or c++? 

In C++ false and true are parts of the language. In pure C thats not the case. 

if you use c++ try to place the offending header in something like this. 

 

extern "C" 

 

#include "altera_up_sd_card_avalon_interface.h" 

Altera_Forum
Honored Contributor II
164 Views

I believe the post creator has already resolved his issues, but, I had the same error and resolved it like this: 

 

In altera_up_sd_card_avalon_interface.h, removed the line: 

typedef enum e_bool { false = 0, true = 1 } bool; 

 

Then, included stdbool.h. Problem solved! :)
Altera_Forum
Honored Contributor II
164 Views

tnx for ur guidace!It's been a long time since that problem and I solved it in a similar way. again tnx for ur help!:)

Altera_Forum
Honored Contributor II
164 Views

I was stuck with the same error, saw the page but nothing. Then I finally solved it and thought I should post it here ;)

Altera_Forum
Honored Contributor II
164 Views

Thanks, you helped me after two years. :)

Reply