Compared to the previous version, the following factors have been taken into account in the new version of cachespeed:
1. the user needs to care about getting a piece of available memory (even if this piece of memory may memory stomp during use)
2. High repetition of test code, poor readability, and overall high test coupling
3. Not taking into account the alignment cache line situation
4. When comparing values between different test tools, there is a little error because of the different ways to get the values (different fine reading)
Therefore, in the new version according to the above problems have been improved:
1. Provide a "test_skeleton", which contains the overall testing process
2. The user only needs to execute, not to care about how to get the available memory address, and the memory allocated by the program also ensures the memory security and data accuracy
3. The system to obtain the data required for the test reduces the difficulty of use and the possibility of inaccurate results due to data errors.
4. Provide two kinds of precision data results, which can be configured through Kconfig
5. Optimize the output log, now more intuitive and concise, to help the subsequent data organization and observation
6. New test items for aligned/unaligned cache line
7. Better readability and extensibility, making it easier to add/remove test items
Signed-off-by: chenrun1 <chenrun1@xiaomi.com>
Based on the previous patch comments, some changes were made to make it more
nuttx style.
https://github.com/apache/nuttx-apps/pull/1829
Signed-off-by: zhanghongyu <zhanghongyu@xiaomi.com>
Fix error: implicit declaration of function 'nsh_foreach_direntry' [-Werror=implicit-function-declaration] on file nsh_fscmds on some compiler versions.
Signed-off-by: chenrun1 <chenrun1@xiaomi.com>
The NimBLE source code is downloaded at the first pass of the
make system so some makefiles to include might be not in place
initially, but included after code is fetched
Signed-off-by: Petro Karashchenko <petro.karashchenko@gmail.com>
This commit fixes the overflow that happens when setting the duty cycle to 100% in the PWM example.
It now correctly passes the value 0xffff rather than 0x0000 when setting the duty cycle to 100 and makes sure that no underflow happens when setting the duty cycle to 0.
Partially implement the gdb rsp protocol,
you can debug the nuttx kernel through the serial port or the network
Signed-off-by: anjiahao <anjiahao@xiaomi.com>
Add xtables.c and xtables.h
In order to support the compilation of third-party utils, we encounter some
situations where the macro is not defined, refer to the common implementation
of other systems, add relevant definitions and empty function.
Signed-off-by: zhanghongyu <zhanghongyu@xiaomi.com>
| # Important note:
| # This CMakeLists.txt is not meant as a top-level CMakeLists.txt. Instead,
| # CMake must be run using the top-level CMakeLists.txt from the nuttx
| # repository and point to this directory via NUTTX_APPS_DIR. For example:
| # cmake -S <nuttx-dir> -B <build-dir> [...] -DNUTTX_APPS_DIR=<apps-dir>
Signed-off-by: chao an <anchao@xiaomi.com>
This can be useful for development purposes when you don't need any complex bootloader yet,
but just want to jump to the app image.
Can be helpful when we need to switch from secure environment to non-secure environment.
CC: pthread/pthread_mutexinconsistent.c libuv/src/unix/getaddrinfo.c:103:9: warning: implicit declaration of function ‘getaddrinfo’; did you mean ‘uv_getaddrinfo’? [-Wimplicit-function-declaration]
103 | err = getaddrinfo(req->hostname, req->service, req->hints, &req->addrinfo);
| ^~~~~~~~~~~
| uv_getaddrinfo
libuv/src/unix/getaddrinfo.c: In function ‘uv_freeaddrinfo’:
libuv/src/unix/getaddrinfo.c:222:5: warning: implicit declaration of function ‘freeaddrinfo’; did you mean ‘uv_freeaddrinfo’? [-Wimplicit-function-declaration]
222 | freeaddrinfo(ai);
| ^~~~~~~~~~~~
| uv_freeaddrinfo
CC: misc/lib_crc16ccitt.c libuv/src/unix/getnameinfo.c: In function ‘uv__getnameinfo_work’:
libuv/src/unix/getnameinfo.c:45:9: warning: implicit declaration of function ‘getnameinfo’; did you mean ‘uv_getnameinfo’? [-Wimplicit-function-declaration]
45 | err = getnameinfo((struct sockaddr*) &req->storage,
| ^~~~~~~~~~~
| uv_getnameinfo
Signed-off-by: fangxinyong <fangxinyong@xiaomi.com>
The `make export` target from the Nuttx repository correctly packs the
System.map file. This change ensure that ./tools/mkimport.sh extracts
this file correctly into the `import`correctly.
1. add Makefile.nimble that helps integrate NimBLE with custom applications
To enable NimBLE for an custom application, user needs to include Makefile.nimble in the app's Makefile:
include $(APPDIR)/wireless/bluetooth/nimble/Makefile.nimble
2. add NuttX specific syscfg.h
- file based on nimble/porting/examples/nuttx/include/syscfg/syscfg.h
- all unnecessary definitions was removed
- definitions are configurable from Kconfig
3. add NuttX specific logcfg.h
- bind NimBLE logging with debug.h macros
When archiving, if the number of files is large, the full path
in SUFFIX may exceed the command line limit for Cygwin and other
programs. To avoid this, the SUFFIX can be changed in the Makefile
in each application or library.
In this change, we have added a malloc from the heap to get the address when the user does not pass an address.
We took into account that the user would be testing the memory after the device was started, but this required them to focus on how to get a piece of address available. To improve the experience of tool users, we can simply ask them to get a size for testing purposes, while also keeping the ability to test for a given address
This change is mainly in the 'parse_commandline' function, so there are a few changes in the way it is used, see usage for details.
Signed-off-by: chenrun1 <chenrun1@xiaomi.com>
When rebuilding, it's not really useful to see reams of "Nothing to be done for" for every application being built. This change attempts to silence these messages.