Page 8 of 8

Re: API and Documentation

PostPosted: Thu Aug 18, 2022 4:26 pm
by atesin
i see this discussion had turn a little fuzzy ... so going back to the original topic...

.... i would like to find C/C++ documentation for esp8266 ... i mean, to program avr arduino i need the arduino api itself (https://www.arduino.cc/reference/en/) and the avr libc reference for low level C language (https://www.nongnu.org/avr-libc/user-ma ... dules.html)... so that way sometimes i use direct C functions like "char lightStr[20]; strlen(myStr);" .... instead "String heavyStr;"... or time functions, printf(), progmem, etc

my question is.... which/where is the esp8266 C lib reference?... not the espressif esp8266 idf sdk api documentation, but the tensilica xtensa lx106 cpu C implementation where idf sdk were built from

Re: API and Documentation

PostPosted: Fri Aug 19, 2022 12:24 am
by JurajA
it is gcc too

Re: API and Documentation

PostPosted: Fri Aug 19, 2022 9:53 pm
by atesin
JurajA wrote:it is gcc too

hi Juraj... i suspected it is gcc (same as c++?)

... but what version?.. is it 100% standard compilant? .. where is the official (iso?, ansi?, gnu?, borland?) standard documentation?, and the specific official (tensilica?, espressif? aitinker? dfrobot?) non standard documentation, if any?

for example, in "official" (nongnu) avr libc documentation pointed above... it seem there are doxygen documentation for all header (.h) files, browsable in html and downloadable in pdf.... i also found ISO C17 standard somewhere in pdf, in where supposedly avr libc is based

.... because due platform limitations to mention some examples, avr uses 32-bit timestamps instead of 64-bit as standard says, and i also use nonstandard strsep() alot instead of strtok()... i generally use "string.h" strings instead arduino Strings.. and time, integer and conversion functions from libc, they consumes far less ram and time and can do things arduino api itself can't

i suspect esp C have another quirks, so with the same logic, i am looking for equivalent C language documentation on where esp sdk was based

thanks in advance

Re: API and Documentation

PostPosted: Tue Aug 23, 2022 1:15 pm
by atesin
i think i have some misconceptions because i am new in programming world...

the language specification is not applicable on the ide, sdk, editor, etc... but in the COMPILER.
iso/ansi does not release any compiler software, but the STANDARDS other compilers should comply (thus gaining some certification level).
each compiler itself should document its "certification level" specifying its differences

so with this new point of view i think was searching in the wrong place... now i see i should looking in compiler documentation

i found the compiler used by arduino-esp8266 is GNU C++ (g++)... but g++ has many versions and supports many languages and architectures.... i had troubles finding specific documentation for G++ VERSION 10.3.0, C++ LANGUANGE, XTENSA ARCHITECTURE....

espressif nonOS sdk idf docuemntation is available, but arduino-esp8266 project has some additions like umm_malloc() and others... also comes arduino api.... is hard to get a summarized c++ documentation for our final sketches, like avr libc did...

the more straightforward option i can imagine is some direct arduino-esp8266 source code doxygen generated documentation.... arduino-esp8266 takes source code from gcc and includes all used libraries and has other adjusts... i still i hadn't found an arduino-esp8266 c++ *final* documentation

EDIT: correct me if i'm wrong... so far, the source code i found is (either no documentation)

for xtensa g++ c++ = https://github.com/earlephilhower/newli ... ewlib/libc
for arduino-esp8266 cores = https://github.com/esp8266/Arduino/tree ... es/esp8266
for arduino-esp8266 libs = https://github.com/esp8266/Arduino/tree ... /libraries