Commit Graph

83 Commits

Author SHA1 Message Date
Dimitry Kloper
06d83c6261 Introduce support for Atmel toolchain in-flash strings
Atmel toolchain AVR compiler provides a transparent in-flash object support using __flash and __memx symbols. The former indicates to compiler that this is a flash-based object.  The later used with pointer indicates that the referenced object may reside either in flash or in RAM. The compiler automatically makes 32-bit pointer with flag indicating whether referenced object is in flash or RAM and generates code to access either in run-time. Thus, any function that accepts __memx object can transparently work with RAM and flash objects.

For platforms with a Harvard architecture and a very small RAM like AVR this allows to move all constant strings used in trace messages to flash in the instruction address space, releasing resources for other things.

This change introduces IOBJ and IPTR type qualifiers.  The 'I' indicates that the object may like in instruction space on a Harvard architecture machine.

For platforms that do not have __flash and __memx or similar symbols IOBJ and IPTR are empty, making the types equivalent to, for example, 'const char' and 'const char*'.  For Atmel compiler these will become 'const __flash char' and 'const __memx char*'.  All printf() functions and syslog() functions are changed so that the qualifier is used with the format parameter.

From: Dimitry Kloper <dikloper@cisco.com>
2016-01-05 10:29:29 -06:00
Gregory Nutt
b682190f52 Rename all head files in main NuttX repository with names like *internal.h, removing the internal 2015-12-29 17:31:17 -06:00
Gregory Nutt
006528b144 Add support for freopen() 2015-11-22 08:39:17 -06:00
Gregory Nutt
e9bd8bceb4 nuttx/libc: Fix some spacing and alignment issues 2015-10-12 07:45:02 -06:00
Gregory Nutt
0b12dbf95d Fix some spacing problems 2015-10-04 15:04:00 -06:00
Gregory Nutt
5b51a9fcdd Standardize the width of all comment boxes in C files 2015-10-02 17:43:18 -06:00
Gregory Nutt
cb9e27c3b0 Standardize naming used for public data and function groupings 2015-10-02 16:30:35 -06:00
Stefan Kolb
983128e16a sscanf: Formats a, A, e, E, g, and G should be treated the same as f and F 2015-09-17 07:41:33 -06:00
Paul A. Patience
9f108b7b63 Fix issues detected by clang 2015-09-10 20:59:43 -04:00
Gregory Nutt
bc46130c70 Rename libc/stdio/lib_avsprintf.c to lib_vasprintf.c 2015-09-07 13:28:00 -06:00
Sebastien Lorquet
77e4e7b231 Change all references from avsprintf to vasprintf. From Sebastien Lorquet 2015-09-07 13:22:13 -06:00
Gregory Nutt
9c66bde5b0 Fix typo in pre-processor command noted by Pierre-noel Bouteville. Also move # of pre-processior command to column 1 2015-09-05 09:10:48 -06:00
Paul A. Patience
3b89eabd50 Correct #if to #ifdef when the macro can be undefined. Fix bug in AT24XX driver: it should compare AT24XX_ADDRSIZE to 2. 2015-09-01 13:52:29 -04:00
Gregory Nutt
51f386d08a Fix more common typos 2015-08-16 11:07:23 -06:00
Gregory Nutt
fce87336a4 Add an option to disable support for long long formats in lib_vsprintf. From Alan Carvalho de Assis 2015-05-30 10:00:54 -06:00
Gregory Nutt
1018296e27 Make some file section headers more consistent with standard 2015-04-08 07:32:08 -06:00
Gregory Nutt
c39725b398 libc: stdio: Fix NULL pointer dereference in ungetc(). If 'stream' was NULL, 'stream->fs_oflags' was evaluated. From Juha Niskanen 2015-03-12 07:51:23 -06:00
Gregory Nutt
40b0acaded sscanf should also support %F 2014-12-12 07:54:37 -06:00
Gregory Nutt
1b661c6d23 sscanf: Accept %X as well as %x as a format specifier. From Sébastien Lorquet 2014-12-12 07:46:46 -06:00
Gregory Nutt
297a255fd8 avsprintf(): Fix a bug in usage of va_list on x86. On x86, va_list is a pointer to a single copy on the stack. avsprintf() calls lib_vsprintf() twice and so traverses the va_list twice using va_start. va_start modifies that single copy on the stack so that the second call to lib_vsprintf() fails. This appears to be an issue with x86 only so far 2014-12-08 10:40:06 -06:00
Gregory Nutt
91e22aeedd Traveler: Change the way that the world path is managed. 2014-12-08 09:28:53 -06:00
Gregory Nutt
9ac09db800 More fixes to problems noted by cppcheck. Some are kind of risky; some are real bugs. 2014-11-25 13:46:14 -06:00
Gregory Nutt
48888ad65b Add tmpnam() and tempnam() 2014-11-05 10:44:16 -06:00
Gregory Nutt
787cd466d2 Add tmpnam() and tempnam() 2014-11-05 10:43:17 -06:00
Gregory Nutt
ec57ab6391 Implement setlogmask(); move some syslog logic from libc/syslog to fs/syslog 2014-10-08 19:08:26 -06:00
Gregory Nutt
a8399d5c6b Move syslog logic from libc/misc and libc/stdio to libc/syslog 2014-10-08 17:16:41 -06:00
Gregory Nutt
176491ce75 Misc changes to get a clean build after all of the syslog changes. There are probably other things still broken 2014-10-08 16:23:48 -06:00
Gregory Nutt
f8ed7323c0 make standard syslog and vsyslog POSIX compliant (also modify non-standard syslog functions for compatibility). This will break a lot of things until ALL usage of syslog is updated to use the modified interfaces 2014-10-08 09:44:15 -06:00
Gregory Nutt
92cc7a96e6 Change to lib_dtoa() to fix prescision error from trailing zeroes 2014-09-26 05:49:50 -06:00
Gregory Nutt
47d55c28dc Mostly cosmetic changes 2014-09-04 10:28:38 -06:00
Gregory Nutt
e3ff0689bb Rename CONFIG_NUTTX_KERNEL to CONFIG_BUILD_PROTECTED; Partially integrate new CONFIG_BUILD_KERNEL 2014-08-29 14:47:22 -06:00
Gregory Nutt
a325cb9f0d sscanf(): NuttX libc tried to guess how many characters to parse, extracted them into a buffer, then ran strtol() on that buffer. That guess is often wrong. A better approach would be to call strtol() directly on the input data, using the endptr return value to determine how many characters to skip after parsing. From Kosma Moczek 2014-08-18 07:33:17 -06:00
Gregory Nutt
320707fdfa SAMA5: Fix bugs in timer/counter interrupts and one-shot timer 2014-08-10 10:47:38 -06:00
Gregory Nutt
038f10ed55 Add seekable standard streams 2014-06-14 16:19:42 -06:00
Gregory Nutt
0a331754f7 Add support for seekable raw streams 2014-06-14 15:46:59 -06:00
Gregory Nutt
24e603f23b Add support for seekable memory streams 2014-06-14 15:35:18 -06:00
Gregory Nutt
59846a8fe9 snprintf(): If size is zero, then snprintf() should return the size of the required buffer without writing anyting. From Sami Pelkonen 2014-05-30 08:53:43 -06:00
Gregory Nutt
972c4cbab5 Nucleo F401RE: Remove PX4 cruft that can in with the port 2014-04-22 12:18:08 -06:00
Gregory Nutt
3a1324741a More trailing whilespace removal 2014-04-13 14:32:20 -06:00
Gregory Nutt
494387b33b Make sure that there is one space after for 2014-04-12 13:28:22 -06:00
Gregory Nutt
2fcc57edb0 mv ramlog.h and syslog.h to new include/nuttx/syslog 2014-04-10 09:29:30 -06:00
Gregory Nutt
ed294643bd sscanf: Use stroul() vs strol() for %u format. From kfrolov 2014-04-02 09:15:40 -06:00
Gregory Nutt
68025784b0 Fix ftell() bug: It was not accounting for data buffered in memory. From Macs N 2014-03-31 09:47:28 -06:00
Gregory Nutt
cd135fe3a8 Complete fragmentary support for ferror(). From Macs N 2014-03-31 09:39:10 -06:00
Gregory Nutt
6bb8cc02df sscanf(): Was returning the wrong number of conversions in many cases; Also, needs to return EOF if there were no conversions 2014-03-30 14:24:38 -06:00
Gregory Nutt
e6bd002d68 Use get_errno() instead of errno because I may do something different if used inside the OS 2014-03-30 11:33:47 -06:00
Gregory Nutt
a0b330bd92 strncpy would fail if n==0 2014-03-28 15:17:43 -06:00
Gregory Nutt
a84a421248 Ooops... I left out a semicolon in the last sscanf() commit 2014-02-18 15:38:44 -06:00
Gregory Nutt
927ec9c792 sscanf() bug fixes from David Sidrane 2014-02-18 14:14:07 -06:00
Gregory Nutt
a5b8755bea Add a patch to work around the bug in the ZDS-II 5.0.1 toolchain 2014-01-24 11:58:30 -06:00