PSRAM toolchain patch build error

rahul.b.patel
Posts: 62
Joined: Wed Apr 19, 2017 6:35 am

PSRAM toolchain patch build error

Postby rahul.b.patel » Sat Sep 09, 2017 2:27 pm

Hello,
I am facing some issues with PSRAM toolchain build with linux 64 bits PC.

[1]
-> I downloaded .zip crosstool-ng from https://github.com/espressif/crosstool- ... _ram_patch in windows PC.
-> Try to build it into linux PC with steps provided into doc.
-> Configured menuconfig same as given samples/xtensa-esp32-elf/crosstool.config
-> Followed steps given in docs.
-> With ./ct-ng build command I got following error at Installing pass-2 core C gcc compiler, all the steps before that successfully build,

ERROR LOGS :

Installing pass-2 core C gcc compiler
[ERROR] /data/rahul/crosstool-NG-xtensa-1.22.x-ext_ram_patch/.build/xtensa-esp32-elf/buildtools/xtensa-esp32-elf/include/machine/ieeefp.h:420:2: error: #error Endianess not declared!!
[ERROR] /data/rahul/crosstool-NG-xtensa-1.22.x-ext_ram_patch/.build/xtensa-esp32-elf/buildtools/xtensa-esp32-elf/include/machine/ieeefp.h:420:2: error: #error Endianess not declared!!
[ERROR] /data/rahul/crosstool-NG-xtensa-1.22.x-ext_ram_patch/.build/xtensa-esp32-elf/buildtools/xtensa-esp32-elf/include/machine/ieeefp.h:420:2: error: #error Endianess not declared!!
[ERROR] /data/rahul/crosstool-NG-xtensa-1.22.x-ext_ram_patch/.build/xtensa-esp32-elf/buildtools/xtensa-esp32-elf/include/machine/ieeefp.h:420:2: error: #error Endianess not declared!!
[ERROR] /data/rahul/crosstool-NG-xtensa-1.22.x-ext_ram_patch/.build/xtensa-esp32-elf/buildtools/xtensa-esp32-elf/include/machine/ieeefp.h:420:2: error: #error Endianess not declared!!
[ERROR] /data/rahul/crosstool-NG-xtensa-1.22.x-ext_ram_patch/.build/xtensa-esp32-elf/buildtools/xtensa-esp32-elf/include/machine/ieeefp.h:420:2: error: #error Endianess not declared!!
[ERROR] /data/rahul/crosstool-NG-xtensa-1.22.x-ext_ram_patch/.build/xtensa-esp32-elf/buildtools/xtensa-esp32-elf/include/machine/ieeefp.h:420:2: error: #error Endianess not declared!!
[ERROR] /data/rahul/crosstool-NG-xtensa-1.22.x-ext_ram_patch/.build/xtensa-esp32-elf/buildtools/xtensa-esp32-elf/include/machine/ieeefp.h:420:2: error: #error Endianess not declared!!
[ERROR] make[2]: *** [_muldi3.o] Error 1
[ERROR] make[2]: *** [_negdi2.o] Error 1
[ERROR] make[2]: *** [_ucmpdi2.o] Error 1
[ERROR] make[2]: *** [_cmpdi2.o] Error 1
[ERROR] /data/rahul/crosstool-NG-xtensa-1.22.x-ext_ram_patch/.build/xtensa-esp32-elf/buildtools/xtensa-esp32-elf/include/machine/ieeefp.h:420:2: error: #error Endianess not declared!!
[ERROR] /data/rahul/crosstool-NG-xtensa-1.22.x-ext_ram_patch/.build/xtensa-esp32-elf/buildtools/xtensa-esp32-elf/include/machine/ieeefp.h:420:2: error: #error Endianess not declared!!
[ERROR] make[2]: *** [_clear_cache.o] Error 1
[ERROR] make[1]: *** [all-target-libgcc] Error 2
[ERROR]
[ERROR] >>
[ERROR] >> Build failed in step 'Installing pass-2 core C gcc compiler'
[ERROR] >> called in step '(top-level)'
[ERROR] >>
[ERROR] >> Error happened in: CT_DoExecLog[scripts/functions@257]
[ERROR] >> called from: do_gcc_core_backend[scripts/build/cc/100-gcc.sh@545]
[ERROR] >> called from: do_gcc_core_pass_2[scripts/build/cc/100-gcc.sh@160]
[ERROR] >> called from: do_cc_core_pass_2[scripts/build/cc.sh@42]
[ERROR] >> called from: main[scripts/crosstool-NG.sh@646]
[ERROR] >>
[ERROR] >> For more info on this error, look at the file: 'build.log'
[ERROR] >> There is a list of known issues, some with workarounds, in:
[ERROR] >> 'share/doc/crosstool-ng//B - Known issues.txt'
[ERROR]
[ERROR] (elapsed: 4:05.03)
[04:05] / ct-ng:152: recipe for target 'build' failed


[2]
-> I cloned toolchain in linux 64 bits pc.
->followed steps given in http://esp-idf.readthedocs.io/en/latest ... ratch.html
-> With ./ct-ng build, I got error as below at first step in retrieving tarballs,

ERROR LOGS:

Building environment variables
[INFO ] =================================================================
[INFO ] Retrieving needed toolchain components' tarballs
[ERROR]
[ERROR] >>
[ERROR] >> Build failed in step 'Retrieving needed toolchain components' tarballs'
[ERROR] >> called in step '(top-level)'
[ERROR] >>
[ERROR] >> Error happened in: do_isl_get[scripts/build/companion_libs/121-isl.sh@741]
[ERROR] >> called from: do_companion_libs_get[scripts/build/companion_libs.sh@15]
[ERROR] >> called from: main[scripts/crosstool-NG.sh@591]
[ERROR] >>
[ERROR] >> For more info on this error, look at the file: 'build.log'
[ERROR] >> There is a list of known issues, some with workarounds, in:
[ERROR] >> 'docs/B - Known issues.txt'
[ERROR]
[ERROR] (elapsed: 4:35.22)
[04:35] / ct-ng:152: recipe for target 'build' failed .


Little help will be appreciated.
Thanks

Ritesh
Posts: 1365
Joined: Tue Sep 06, 2016 9:37 am
Location: India
Contact:

Re: PSRAM toolchain patch build error

Postby Ritesh » Sat Sep 09, 2017 4:57 pm

Hi Loboris or Espressif Systems SDK Developer,

I think you have already tried into Linux System to compile and access PSRAM on ESP32-WROVER Kit.

So, Would you please help us to compile PSRAM support patched tool-chain into Linux System in which we are facing some issues?

Let me know if need anything else from our side.
Regards,
Ritesh Prajapati

User avatar
loboris
Posts: 514
Joined: Wed Dec 21, 2016 7:40 pm

Re: PSRAM toolchain patch build error

Postby loboris » Sat Sep 09, 2017 6:12 pm

Some of the servers with needed toolchain components are not accessible at the moment (isl.gforge.inria.fr/).
You can download compiled (for Linux 64-bit) toolchain package from my GitHub repository.
Just unpack with:

Code: Select all

tar -xf xtensa-esp32-elf_psram.tar.xz
You can download needed tarballs from here.
After cloning crosstool-NG, got to to the cloned directery and create .build directory.
Unpack the downloaded tarball archive to the .build subdirectory.
Now you can build following the instructions.

The whole procedure:

Code: Select all

sudo apt-get install git wget make libncurses-dev flex bison gperf python python-serial
sudo apt-get install gawk gperf grep gettext python python-dev automake bison flex texinfo help2man libtool libtool-bin g++ libncursesw5-dev
cd ~/esp
git clone -b xtensa-1.22.x-ext_ram_patch https://github.com/espressif/crosstool-NG.git
cd crosstool-NG
mkdir .build
cd .build
wget http://loboris.eu/ESP32/crosstool-NG_psram_.build_tarballs.tar.xz
tar -xf crosstool-NG_psram_.build_tarballs.tar.xz
rm crosstool-NG_psram_.build_tarballs.tar.xz
cd ..
./bootstrap && ./configure --enable-local && make install
./ct-ng xtensa-esp32-elf
./ct-ng build
chmod -R u+w builds/xtensa-esp32-elf


Ritesh
Posts: 1365
Joined: Tue Sep 06, 2016 9:37 am
Location: India
Contact:

Re: PSRAM toolchain patch build error

Postby Ritesh » Sun Sep 10, 2017 12:19 pm

loboris wrote:Some of the servers with needed toolchain components are not accessible at the moment (isl.gforge.inria.fr/).
You can download compiled (for Linux 64-bit) toolchain package from my GitHub repository.
Just unpack with:

Code: Select all

tar -xf xtensa-esp32-elf_psram.tar.xz
You can download needed tarballs from here.
After cloning crosstool-NG, got to to the cloned directery and create .build directory.
Unpack the downloaded tarball archive to the .build subdirectory.
Now you can build following the instructions.

The whole procedure:

Code: Select all

sudo apt-get install git wget make libncurses-dev flex bison gperf python python-serial
sudo apt-get install gawk gperf grep gettext python python-dev automake bison flex texinfo help2man libtool libtool-bin g++ libncursesw5-dev
cd ~/esp
git clone -b xtensa-1.22.x-ext_ram_patch https://github.com/espressif/crosstool-NG.git
cd crosstool-NG
mkdir .build
cd .build
wget http://loboris.eu/ESP32/crosstool-NG_psram_.build_tarballs.tar.xz
tar -xf crosstool-NG_psram_.build_tarballs.tar.xz
rm crosstool-NG_psram_.build_tarballs.tar.xz
cd ..
./bootstrap && ./configure --enable-local && make install
./ct-ng xtensa-esp32-elf
./ct-ng build
chmod -R u+w builds/xtensa-esp32-elf

Hi Loboris,

Thanks for valuable reply.

So, If I extract your 64 bit supported Toolchain then will it work directly into 64 bit supported Ubuntu 14.04 or 16.04 Linux System?

Also, I will try steps which you have provided to clone cross NG and will build into my system as well and will provide result as soon as possible.

Again thanks for your support.
Regards,
Ritesh Prajapati

User avatar
loboris
Posts: 514
Joined: Wed Dec 21, 2016 7:40 pm

Re: PSRAM toolchain patch build error

Postby loboris » Sun Sep 10, 2017 1:35 pm

Ritesh wrote:So, If I extract your 64 bit supported Toolchain then will it work directly into 64 bit supported Ubuntu 14.04 or 16.04 Linux System?
Yes. Tested on Ubuntu 16.04 & Ubuntu 17.04, but should work on any 64bit Linux system.

Ritesh
Posts: 1365
Joined: Tue Sep 06, 2016 9:37 am
Location: India
Contact:

Re: PSRAM toolchain patch build error

Postby Ritesh » Sun Sep 10, 2017 4:34 pm

loboris wrote:
Ritesh wrote:So, If I extract your 64 bit supported Toolchain then will it work directly into 64 bit supported Ubuntu 14.04 or 16.04 Linux System?
Yes. Tested on Ubuntu 16.04 & Ubuntu 17.04, but should work on any 64bit Linux system.
Hi Loboris,

Thanks for quick response.

Tomorrow morning I will check it and get back to you if any issue while accessing it.
Regards,
Ritesh Prajapati

rahul.b.patel
Posts: 62
Joined: Wed Apr 19, 2017 6:35 am

Re: PSRAM toolchain patch build error

Postby rahul.b.patel » Mon Sep 11, 2017 5:48 am

Hi Loboris,
Thanks for your help. Your provided toolchain for linux 64bits works fine. I tested dynamic memory allocation in PSRAM successfully.

Thanks.

Ritesh
Posts: 1365
Joined: Tue Sep 06, 2016 9:37 am
Location: India
Contact:

Re: PSRAM toolchain patch build error

Postby Ritesh » Mon Sep 11, 2017 6:16 am

Hi Loboris,

Thanks for quick support to resolve ESP32 Toolchain building issue for PSRAM support. We have checked sample example to malloc higher then 1 MB which works fine without any issue.

We have also checked data read/write on that buffer which is also works fine without any issue. SO, in short we can use up to 4 MB SPI PSRAM malloc for our application development purpose.



Hi Loboris / Espressif Systems Developer,

Right now, We have cloned psram_malloc branch to check PSRAM feature support which works fine but i think it has been included into master branch as well.

We have checked master branch as well but failed to malloc on PSRAM.

So, Do you have any idea that those PSRAM branch changes have been included into master branch or not? Espressif Systems Developer might have much idea for this.
Regards,
Ritesh Prajapati

User avatar
loboris
Posts: 514
Joined: Wed Dec 21, 2016 7:40 pm

Re: PSRAM toolchain patch build error

Postby loboris » Mon Sep 11, 2017 6:40 am

Ritesh wrote:...We have checked master branch as well but failed to malloc on PSRAM.

So, Do you have any idea that those PSRAM branch changes have been included into master branch or not? Espressif Systems Developer might have much idea for this.
malloc is not yet supported, if spiram support is enabled, you can access psram region directly:

Code: Select all

buf1 = (uint8_t *)0x3f800000;
There are some problems, look at this and later posts viewtopic.php?f=13&t=2824#p13671

rahul.b.patel
Posts: 62
Joined: Wed Apr 19, 2017 6:35 am

Re: PSRAM toolchain patch build error

Postby rahul.b.patel » Mon Sep 11, 2017 7:05 am

loboris wrote:
Ritesh wrote:...We have checked master branch as well but failed to malloc on PSRAM.

So, Do you have any idea that those PSRAM branch changes have been included into master branch or not? Espressif Systems Developer might have much idea for this.
malloc is not yet supported, if spiram support is enabled, you can access psram region directly:

Code: Select all

buf1 = (uint8_t *)0x3f800000;
There are some problems, look at this and later posts viewtopic.php?f=13&t=2824#p13671
Hi Loboris,
Yes of course simple malloc is not supported yet, but we tested it using pvPortMallocCaps(size, MALLOC_CAP_SPIRAM).
While using buffer = pvPortMallocCaps(10, MALLOC_CAP_SPIRAM), we got "buffer" address as 0x3f800008.
We tested it with 40MHz speed only. This works with feature/psram_malloc branch but not with current master branch.

Who is online

Users browsing this forum: Bing [Bot] and 131 guests