This provides an adaptor for using lvgl with the lcddev in
addition to the fbdev. As part of this it also fixes a compilation
error when fbdev was used with CONFIG_FB_UPDATE. There is also
a monitoring callback enabled for monitoring the performance
of the demo.
examples/qencoder/qe_main.c:
* main(): Call to printf() had "%d" but argument was
int32_t, leading to compiler warning. Change format
specifier to PRIi32 (suggested by Gregory Nutt).
since romfs can return the soft link with the kernel change:
commit 67ef70d460db4695b950208d861ff47d4a40bdb3
Author: Xiang Xiao <xiaoxiang@xiaomi.com>
Date: Mon Jul 6 00:34:32 2020 +0800
vfs/dirread: Should return the same file type as lstat
by extend the possible value of d_type for the special file
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
should be CONFIG_EXAMPLES_PTYTEST_SERIALDEV, regression in commit:
commit 6ddbffd200
Author: Xiang Xiao <xiaoxiang@xiaomi.com>
Date: Sun Jan 3 23:50:50 2021 -0800
examples/pty_test: Remove O_NONBLOCK from open
to avoid the log storm:
ERROR Failed to read from serial: 11
ERROR Failed to read from serial: 11
ERROR Failed to read from serial: 11
ERROR Failed to read from serial: 11
ERROR Failed to read from serial: 11
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
to avoid the log storm:
ERROR Failed to read from serial: 11
ERROR Failed to read from serial: 11
ERROR Failed to read from serial: 11
ERROR Failed to read from serial: 11
ERROR Failed to read from serial: 11
...
Change-Id: I821743411c33b5412165f1e9020b6c9ce6c24660
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
The examples/webserver app can be built in two modes:
(1) in standalone mode, or
(2) as a NSH built-in app.
When run in standalone mode, the webserver program is responsible for
bringing up the network (including DHCP if configured). Also, the
webserver program must never exit, so if httpd fails (i.e., if
httpd_listen() returns), webserver_main() goes into an endless loop.
When run as a NSH built-in app, network bring-up is the responsibility
of other processes and the webserver program assumes the network is
already properly configured when it starts. Also, if httpd_listen()
returns, the webserver program should terminate.
Prior to this change, the webserver program would *not* terminate,
even when running as a NSH built-in app. For example:
nsh> webserver &
webserver [6:100]
nsh> Starting webserver
nsh> kill -9 6
nsh> webserver_main: Still running
nsh> webserver_main: Still running
nsh> webserver_main: Still running
nsh> webserver_main: Still running
The line "webserver_main: Still running" would be forever printed
every 3 seconds, however httpd_listen() is no longer running and the
webserver is not functional.
This change makes the webserver play nicely when running as a NSH
built-in app. With this change applied:
nsh> webserver &
webserver [6:100]
nsh> Starting webserver
nsh> kill -9 6
nsh> webserver_main: Exiting
apps/examples/webserver/webserver_main.c:
* main(): Infer from CONFIG_NSH_BUILTIN_APPS if this is a
standalone program or a NSH built-in app. (See [1], where
similar logic was added to decide whether to do network bring-up
or not.) If standalone, run forever as before. If built-in
app, exit when httpd terminates.
References:
[1] Commit 3a21b0b222
wget is missing from some system (like macOS and Windows native),
it's better to use curl to simplify build environment.
Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
- Fix bug for multiple PWM outputs (CONFIG_PWM_MULTICHAN). Wrong define
was in use and only the information about the first channel was shown.
- Fix formatting (a few line breaks and spaces missing).
Because the configured signo may have the default action(e.g. SIGPIPE),
and then will generate the bad side effect before the caller wakeup.
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
since isascii isn't a standard defined function and then
may not exist in all cctype header file(e.g. libc++):
cctype_main.cxx: In function 'int cctype_main(int, char**)':
cctype_main.cxx:64:45: error: 'isascii' is not a member of 'std'; did you mean 'isascii'?
64 | std::isspace(i), std::isascii(i), std::isprint(i), std::isgraph(i),
| ^~~~~~~
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I8c4fd5ccf120ae5a1566cd4d90695e47ffc30cad
2schar_main.c: In function 'parse_args':
i2schar_main.c:199:20: error: 'struct i2schar_state_s' has no member named 'rxcount'
199 | i2schar->rxcount = (uint32_t)value;
| ^~
i2schar_main.c:211:20: error: 'struct i2schar_state_s' has no member named 'txcount'
211 | i2schar->txcount = (uint32_t)value;
| ^~
i2schar_main.c: In function 'i2schar_main':
i2schar_main.c:276:16: error: 'struct i2schar_state_s' has no member named 'rxcount'
276 | g_i2schar.rxcount = CONFIG_EXAMPLES_I2SCHAR_RXBUFFERS;
| ^
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: Ie85a9bc46516f44e4a286da3d40f1b02a2bbfde0
Still has a few errors because of include/nuttx/wireless/nrf24l01.h.
examples/nrf24l01_term/nrf24l01_term.c:125:33: error: Mixed case identifier found
examples/nrf24l01_term/nrf24l01_term.c:129:15: error: Mixed case identifier found
This makes LVGL use malloc/free to handle its memory (instead of
their own memory handling) and supports a tick interface by which
LVGL can ask NuttX the elapsed time, instead of having to periodically
"tick" LVGL internal time in a thread.
since it is wrong to close the builtin stream and specially note
https://pubs.opengroup.org/onlinepubs/9699919799/functions/fclose.html:
Since after the call to fclose() any use of stream results in
undefined behavior, fclose() should not be used on stdin, stdout,
or stderr except immediately before process termination (see XBD
Process Termination), so as to avoid triggering undefined behavior
in other standard interfaces that rely on these streams. If there
are any atexit() handlers registered by the application, such a
call to fclose() should not occur until the last handler is
finishing. Once fclose() has been used to close stdin, stdout, or
stderr, there is no standard way to reopen any of these streams.
and it is also unnecessary because the stream always get flushed.
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
This commit adds structures, modifies function prototypes, and renames data to support the future addition of IPv6 support. This commit does NOT add that IPv6, only the hooks for backward compatible future support.
This commit adds support to access an IPv4 Configuration file similar to the Linux dhpc.client ipfcg file. This version, tailored for deeply embedded systems supports several options to tailor the file and file access to different environments. It supports:
- Writable as well as read-only configuration files.
- ASCII human readable files as well as smaller binary files.
- It supports using character driver access to constrained media (such as EEPROM).
- Add examples/ipcfg to exercise IPv4 Configuration File support
The rest of errors are about cJSON identifiers:
wgetjson_main.c:181:2: error: Mixed case identifier found
wgetjson_main.c:183:9: error: Mixed case identifier found
wgetjson_main.c:186:37: error: Mixed case identifier found
wgetjson_main.c:190:12: error: Mixed case identifier found
wgetjson_main.c:191:6: error: Mixed case identifier found
wgetjson_main.c:203:39: error: Mixed case identifier found
wgetjson_main.c:256:36: error: Mixed case identifier found
wgetjson_main.c:283:2: error: Mixed case identifier found
wgetjson_main.c:286:9: error: Mixed case identifier found
wgetjson_main.c:289:37: error: Mixed case identifier found
wgetjson_main.c:295:6: error: Mixed case identifier found
fb_main.c: In function 'fb_main':
fb_main.c:473:15: warning: passing argument 1 of 'munmap' makes pointer from integer without a cast [-Wint-conversion]
473 | munmap(state.fd, state.fbmem);
| ~~~~~^~~
| |
| int
In file included from fb_main.c:43:
/home/archer/code/upload/incubator-nuttx/include/sys/mman.h:177:22: note: expected 'void *' but argument is of type 'int'
177 | int munmap(FAR void *start, size_t length);
| ~~~~~~^~~~~
fb_main.c:473:25: warning: passing argument 2 of 'munmap' makes integer from pointer without a cast [-Wint-conversion]
473 | munmap(state.fd, state.fbmem);
| ~~~~~^~~~~~
| |
| void *
In file included from fb_main.c:43:
/home/archer/code/upload/incubator-nuttx/include/sys/mman.h:177:36: note: expected 'size_t' {aka 'unsigned int'} but argument is of type 'void *'
177 | int munmap(FAR void *start, size_t length);
| ~~~~~~~^~~~~~
Signed-off-by: chao.an <anchao@xiaomi.com>
- Network initialization codes are not needed
with NSH_NETINIT config.
- Suppport commandline argument to set the URL to get.
- Change stack size to independent
since this config doesn't appear inside examples/helloxx/Kconfig anymore and
there is any c++ compiler can't construct the stack object as far as I know
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I0297d192df3beaa78ae7ee75f24ae51476bb30a9
since the test should work with either uClibc++ or libcxx
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: Ie6d7b1706314cbe82d4e89eb2d5c47ed36118ea4
since it is moved to the central place in nuttx side instead
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I544d6110f1ca6460f7c82f970870aa9b1e7ab3dd
The camera example will take the specified number of pictures (default 10)
then will exit
To enable the example add the following line in your defconfig
EXAMPLES_CAMERA
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
Adapt to the change in the main repo.
mallinfo is meant to be API compatible with Linux,
where it's provided by malloc.h.
(I think the API actually originated with System V. I don't
remember how it was there though. Anyway, I guess the
compatibility with Linux is more important than System V
these days.)
application just use BUTTONS ioctl and shouldn't take care the implementation detail
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: Ia4d615700de1ac17302ab9b6379340fb81e69d86
application just use USERLED ioctl and shouldn't take care the implementation detail
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I5b707d86db1bd96d85b6fed1d5a403584739f0d7
Update make dependency for elf/module/nxflat/posix_spawn/sotest/thttpd examples which make use of
mksymtab.sh. This could avoid them built twice in 'make depend' and 'make all' which would result
in file truncated build break. Now only build once by 'make all'.
Change-Id: I5d8f1ebbf73e3b12d7d2118f1f51b4233d0ed007
Signed-off-by: liuhaitao <liuhaitao@xiaomi.com>
There were several places where default sector and buffer sizes of 2048 were changed to DEFAULT_TASK_STACKSIZE. This is not correct. This was noted by Xiao Xiang.
userfs_main.c:547:7: warning: variable 'ret' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
if (*relpath == '\0')
^~~~~~~~~~~~~~~~
userfs_main.c:564:10: note: uninitialized use occurs here
return ret;
^~~
userfs_main.c:547:3: note: remove the 'if' if its condition is always false
if (*relpath == '\0')
^~~~~~~~~~~~~~~~~~~~~
userfs_main.c:543:10: note: initialize the variable 'ret' to silence this warning
int ret;
^
= 0
test_motor.c:1068:14: warning: explicitly assigning value of variable of type 'float' to itself [-Wself-assign]
expected_e = expected_e;
~~~~~~~~~~ ^ ~~~~~~~~~~
This is the companion to PR #766. It removes the CONFIG_CAN_PASS_STRUCT option as recommended by Issue #620
NuttX PR #766 depends on PR being in place but not vice versa. This PR should be merge-able without #766 and then PR #766 should also pass its checks.
Where:
* Under examples and testing
* And the default value is less than 2048
Using a bit more memory for examples and tests should not
be a critical problem.
This commit changes only ones with the default 2048 and
leaves the others.
E.g. this leaves SYSTEM_RAMTEST_STACKSIZE, whose default is 1024.
I guess those need to be inspected one-by-one.
For now, I left the following instances because it isn't
clear to me why they are using the different values.
Maybe they need one-by-one inspection.
examples/igmp/Makefile:STACKSIZE = 1024
examples/powerled/Makefile:STACKSIZE = 1024
examples/powermonitor/Makefile:STACKSIZE = 768
examples/relays/Makefile:STACKSIZE = 512
examples/smps/Makefile:STACKSIZE = 1024
graphics/screenshot/Makefile:STACKSIZE = 4096
system/flash_eraseall/Makefile:STACKSIZE = 1024
testing/cxxtest/Makefile:STACKSIZE = 4096
testing/smart_test/Makefile:STACKSIZE = 4096
It seems in the time window mksymtab.sh redirect to symtab.c, there is chance symtab.c
would also be built meantime. Then if built before symtab.c write done, link errors may
occur. So use rename and mv operation to reduce the possibility.
Signed-off-by: liuhaitao <liuhaitao@xiaomi.com>
In parallel build, for example maix-bit:module config, it reports:
nm: 'a.out': No such file
This is caused by FSROOT not populated with chardev when symtab.c
generated. So update SYMTAB_SRC dependency to fix it.
Change-Id: I5bb5d17db41f3bba98ae70a2acdd2ec594736611
Signed-off-by: liuhaitao <liuhaitao@xiaomi.com>
During generating symtab.c, compile seqeuence would start with
incomplete symtab.c. This change will fix such a situation.
Signed-off-by: liuhaitao <liuhaitao@xiaomi.com>
During generating symtab.c, compile seqeuence would start with
incomplete symtab.c. This change will fix such a situation.
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
tcpblaster_server.c: In function 'tcpblaster_server':
tcpblaster_server.c:256:71: warning: passing argument 1 of 'localtime' from incompatible pointer type [-Wincompatible-pointer-types]
strftime(timebuff, 100, "%Y-%m-%d %H:%M:%S.000", localtime (&curr));
^
In file included from tcpblaster_server.c:50:0:
/usr/include/time.h:123:19: note: expected 'const time_t * {aka const long int *}' but argument is of type 'struct timespec *'
extern struct tm *localtime (const time_t *__timer) __THROW;
^~~~~~~~~
tcpblaster_client.c: In function 'tcpblaster_client':
tcpblaster_client.c:230:71: warning: passing argument 1 of 'localtime' from incompatible pointer type [-Wincompatible-pointer-types]
strftime(timebuff, 100, "%Y-%m-%d %H:%M:%S.000", localtime (&curr));
^
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Correct symtab dependency from build to populate instead, or tests
subdirectory programs would be built twice which resulted in errors
as below:
arm-none-eabi-ld: hello++3.o: file not recognized: file truncated
- changed incorrect Kb to correct KB in program output
- added readme
Squashed commit of the following:
commit b81821fd788eb08ffdf5a3084ab3d128788b75da
Author: Adam Feuer <adam@starcat.io>
Date: Mon Feb 24 16:58:29 2020 -0800
formatting improvements
commit a70e7109dd90522e6d7f680790d80c9328a8ba9c
Author: Adam Feuer <adam@starcat.io>
Date: Mon Feb 24 16:58:13 2020 -0800
formatting improvements
commit c11a5b3c8ee38fe080d121db87b7d26c0baf9f93
Author: Adam Feuer <adam@starcat.io>
Date: Sun Feb 23 17:03:22 2020 -0800
remove printf debugging statement
commit 94bcaa89d2df326ed2b560e935d344932c46607d
Merge: fddb3ee4 d6604922
Author: Adam Feuer <adam@starcat.io>
Date: Sun Feb 23 16:58:35 2020 -0800
Merge branch 'master' into feature/tcpblaster-improvements
commit fddb3ee4ee9ba185f0f4e01c205620bbcb02e40e
Author: Adam Feuer <adam@starcat.io>
Date: Sat Feb 22 16:29:51 2020 -0800
fixed typo
commit d398d6f3803d81e849814548be9671ac33f08168
Author: Adam Feuer <adam@starcat.io>
Date: Sat Feb 22 16:29:04 2020 -0800
logging now has timestamp; improved configuration
If an external file system is used but is not mounted by the the ELF example, then a compilation error will occur. This configuration problem has existed for a long time but was unmasked by a recent PR. In the failure mode, CONFIG_EXAMPLES_ELF_FSTYPE would not be defined because it depends on CONFIG_EXAMPLES_ELF_FSMOUNT which is not defined. The resulting mountpoint, MOUNTPT, would therefore be left in an invalid state. Previous changes to conditional logic now allowed setenv() to run and to attempt to set the PATH variable to MOUNTPT, causing a compile time failure like this:
CC: elf_main.c
elf_main.c: In function 'elf_main':
elf_main.c:113:32: error: expected ')' before 'CONFIG_EXAMPLES_ELF_FSTYPE'
# define MOUNTPT "/mnt/" CONFIG_EXAMPLES_ELF_FSTYPE
^~~~~~~~~~~~~~~~~~~~~~~~~~
elf_main.c:364:18: note: in expansion of macro 'MOUNTPT'
setenv("PATH", MOUNTPT, 1);
^~~~~~~
elf_main.c:364:3: error: too few arguments to function 'setenv'
setenv("PATH", MOUNTPT, 1);
^~~~~~
In file included from elf_main.c:47:
D:\Spuda\Documents\projects\nuttx\master\nuttx-fork\include/stdlib.h:158:11: note: declared here
int setenv(FAR const char *name, FAR const char *value, int overwrite);
^~~~~~
This problem was found during manual build testing using configuration lx_cpu:nsh.
Cannot call up_cpu_index() or any other nonstandard OS application interface. This not only breaks the portable POSIX OS interface but also would break any PROTECTED or KERNEL mode SMP implementation.
If you want to do something like this in user space, the appropriate thing to do would be to extend prctl(). That is non-posix, but is at least Linux-like and will work in all build modes.
This reverts commit 715517b1a0.
The sendmail example hasn't been used in years. I am not sure it was ever debugged. It is so old that it still expects hand editted .config files. As a result, all of the configuration settings were missing from the Kconfig file.
This commit adds the missing apps/examples/sendmail configuration settings so that the example at least builds. I cannot test it because I have no smtp server that I am willing to spam.
This configuration also adds missing configuration dependencies and runs the C files in apps/examples/sendmail and apps/netutils/smtp through nxstyle.
This commit resolves an issue reported by surya prakash rased in the Google group: https://groups.google.com/forum/#!topic/nuttx/idr-M164Y24
In stm32f4discovery:posix_spawn and lc823450-xgevk:posix_spawn parallel build,
it failed since apps/examples/posix_spawn/filesystem/romfs/hello is not available
which is needed by examples/posix_spawn/filesystem/symtab.c.
Change-Id: I588317396f8e3ca4d69d4ec8db8ccad219207048
Signed-off-by: liuhaitao <liuhaitao@xiaomi.com>
chardev bin may not availabe before make install in parallel build,
so add install dependency on chardev BIN here.
Change-Id: If28451ceeeed0a6463544d8c342871cecda5a057
Signed-off-by: liuhaitao <liuhaitao@xiaomi.com>
apps/netutils/dhcpd/dhcpd.c: Fix unused const variable
dhcpd.c:273:29: warning: 'g_anyipaddr' defined but not used [-Wunused-const-variable=]
static const uint8_t g_anyipaddr[4] = {0, 0, 0, 0};
apps/netutils/dhcpd: Make dhcpd interface configurable
apps/netutils/dhcpd: Lease address directly if hit in address range
apps/netutils/netinit: Initialize dhcpc_state
update the addresses only on request success
NuttX commit 346336bb9e5c9199b82e34d08bf23dd1bc389460 make CONFIG_NET_TCP_READADHEAD unselectable and removed all references to CONFIG_NET_TCP_READHEAD from the the NuttX repositories. However, there was no corresponding removal of CONFIG_NET_TCP_READHEAD from the apps/ repository. As a result, there was logic that depended on the selection of CONFIG_NET_TCP_READHEAD that could never be enabled.
This was found during build testing using the configuration olimex-lpc1766stk/thttpd-binfs. THTTPD was not being build fully because it had dependencies on CONFIG_NET_TCP_READHEAD. There resulted int numerous new warnings and, finally, the error:
(.../apps.examples.thttpd.o): in function `thttp_main':
thttpd_main.c:(.text+0x104): undefined reference to `thttpd_main'
1.Remove void cast for function because many place ignore the returned value witout cast
2.Replace void cast for variable with UNUSED macro
Change-Id: Ie644129a563244a6397036789c4c3ea83c4e9b09
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
apps\include" -Dmain udpblaster_target.c -o udpblaster_target.o
<command-line>:0:6: error: expected identifier or '(' before numeric constant
udpblaster_target.c:196:5: note: in expansion of macro 'main'
int main(int argc, FAR char *argv[])
1. Check NSH_NETINIT for self network initialization
2. Check NSH_ARCHINIT for sel arch specific initialization
3. Always show help regardless of NSH_BUILTIN_APPS
4. Loop forever regardless of NSH_BUILTIN_APPS, user could:
a.change the default behavior by the command line argument
b.or ctrl+c to break out the loop
apps/examples/webserver: Fix to compile with CONFIG_NETUTILS_HTTPD_SENDFILE=y
Also, in this PR, some configs such as CONFIG_NETUTILS_HTTPDFILESTATS
can be selected by menuconfig.
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
Approved-by: Gregory Nutt <gnutt@nuttx.org>
apps/graphics/twm4nx: Other toolbar buttons need to be disabled while resizing. Lots of problems if you decide to iconify or exit while resizing. CResize now disables all buttons except for the RESIZE button while resizing.
apps/graphics/twm4nx: Add an event and logic to support notification of changes in the size of a window to NxTerm.
Various updates to adapt to change in boardctl() interface.
apps/graphics/twm4nx: Correct an error in the NxTerm resize logic
apps/graphics/twm4nx: Update debug output when failures to send a message occur. The returned value of -1 is not interested, need to show the errno value instead.
apps/graphics/twm4nx: Correct the maximum size of a message. Recent changes caused message send failures because a message exceed that previous maximum size.
apps/graphics/twm4nx: Fix routing of redraw events.
include/ and netutils/: Remove references to CONFIG_DISABLE_SIGNALS. Signals can no longer be disabled.
nshlib/: Remove references to CONFIG_DISABLE_SIGNALS. Signals can no longer be disabled.
system/: Remove references to CONFIG_DISABLE_SIGNALS. Signals can no longer be disabled.
testing/: Remove references to CONFIG_DISABLE_SIGNALS. Signals can no longer be disabled.
examples/: Remove references to CONFIG_DISABLE_SIGNALS. Signals can no longer be disabled.
Squashed commit of the following:
apps/examples/pwlines: The example is complete and verified.
apps/examples/pwlines: A little more progress between distractions.
apps/examples/pwlines: Beginning of another per-window framebuffer test/examples.
apps/examples/pwfb: Solve a race condition by changin some relative priorities. Also removes a delay kludge that used as a workaround.
apps/examples/pwfb: Add rate control. Examples becomes unstable at high update rates.
Squashed commit of the following:
apps/examples/pwfb: Fixes compile and early debug issues.
apps/examples/pwfb: Code complete!
apps/examples/pwfb: Flesh out the motion logic.
apps/examples/pwfb: Add an example/test case that will, eventually be used verify the per-window framebuffer logic. This is not even code complete at this point.
The patch provided in issue 135, which adds support for HTTP Chunked Encoding, covers all paths in the webserver app except CGI callbacks. As a result, if a page being served happens to use CGI, it could generate stream content that does not comply with HTTP Chunked Encoding.
The patch attached amends the webserver app's CGI callbacks to use the HTTP Chunked Encoding sender function instead of using send() directly.
Reviewers note: Reviewing the changes I also see that these file did not follow the NuttX codings standard. I ran all files through nuttx/tools/indent.sh, manually reviewed all files for coding style issues. I also changed occurrences of non-standard types u8_t, u16_t, and u32_t to the standard uint8_t, uint16_t, and uint32_t.