Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

misc fixes and updates #2995

Merged
merged 1 commit into from
Dec 27, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -445,6 +445,8 @@ jobs:
- path: pico-sdk/pico-rndis-dashboard
- path: pico-sdk/pico-w-picosdk-baremetal-builtin
- path: pico-sdk/pico-w-picosdk-freertos-lwip
- path: pico-sdk/pico-2-w-picosdk-baremetal-builtin
- path: pico-sdk/pico-2-w-picosdk-freertos-lwip
- path: pico-sdk/w5500-evb-pico-picosdk-baremetal-builtin
- path: pico-sdk/w5500-evb-pico2-picosdk-baremetal-builtin
- path: stm32/nucleo-f746zg-make-freertos-tcp
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/quicktest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -311,6 +311,8 @@ jobs:
- path: pico-sdk/pico-rndis-dashboard
- path: pico-sdk/pico-w-picosdk-baremetal-builtin
- path: pico-sdk/pico-w-picosdk-freertos-lwip
- path: pico-sdk/pico-2-w-picosdk-baremetal-builtin
- path: pico-sdk/pico-2-w-picosdk-freertos-lwip
- path: pico-sdk/w5500-evb-pico-picosdk-baremetal-builtin
- path: pico-sdk/w5500-evb-pico2-picosdk-baremetal-builtin
- path: stm32/nucleo-f746zg-make-freertos-tcp
Expand Down
4 changes: 2 additions & 2 deletions examples/pico-sdk/pico-rndis-dashboard/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@ endif
all example:
true

build: pico-sdk
build build/firmware.uf2: pico-sdk main.c net.c
$(MKBUILD)
cd build && cmake -G "Unix Makefiles" .. && make

pico-sdk:
git clone --depth 1 -b 1.4.0 https://github.com/raspberrypi/pico-sdk $@
git clone --depth 1 -b 1.5.0 https://github.com/raspberrypi/pico-sdk $@
cd $@ && git submodule update --init

clean:
Expand Down
1 change: 0 additions & 1 deletion examples/pico-sdk/pico-rndis-dashboard/mongoose_config.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,3 @@
#define MG_ENABLE_TCPIP 1
#define MG_ENABLE_TCPIP_DRIVER_INIT 0
#define MG_ENABLE_PACKED_FS 1
#define MG_ENABLE_POSIX_FS 0
4 changes: 2 additions & 2 deletions examples/pico-sdk/pico-rndis-device/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@ endif
all example:
true

build: pico-sdk
build build/firmware.uf2: pico-sdk main.c net.c
$(MKBUILD)
cd build && cmake -G "Unix Makefiles" .. && make

pico-sdk:
git clone --depth 1 -b 1.4.0 https://github.com/raspberrypi/pico-sdk $@
git clone --depth 1 -b 1.5.0 https://github.com/raspberrypi/pico-sdk $@
cd $@ && git submodule update --init

clean:
Expand Down
2 changes: 1 addition & 1 deletion examples/pico-sdk/pico-rndis-device/mongoose_config.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@
#define MG_ENABLE_TCPIP 1
#define MG_ENABLE_TCPIP_DRIVER_INIT 0
#define MG_ENABLE_PACKED_FS 1
#define MG_ENABLE_POSIX_FS 0

10 changes: 4 additions & 6 deletions mongoose.c
Original file line number Diff line number Diff line change
Expand Up @@ -16854,24 +16854,22 @@ bool mg_random(void *buf, size_t len) {
while (len--) *p++ = (unsigned char) (get_rand_32() & 255);
success = true;
#elif MG_ARCH == MG_ARCH_WIN32
static bool initialised = false;
#if defined(_MSC_VER) && _MSC_VER < 1700
static bool initialised = false;
static HCRYPTPROV hProv;
// CryptGenRandom() implementation earlier than 2008 is weak, see
// https://en.wikipedia.org/wiki/CryptGenRandom
if (initialised == false) {
if (!initialised) {
initialised = CryptAcquireContext(&hProv, NULL, NULL, PROV_RSA_FULL,
CRYPT_VERIFYCONTEXT);
}
if (initialised == true) {
success = CryptGenRandom(hProv, len, p);
}
if (initialised) success = CryptGenRandom(hProv, len, p);
#else
size_t i;
for (i = 0; i < len; i++) {
unsigned int rand_v;
if (rand_s(&rand_v) == 0) {
p[i] = (unsigned char)(rand_v & 255);
p[i] = (unsigned char) (rand_v & 255);
} else {
break;
}
Expand Down
12 changes: 5 additions & 7 deletions src/util.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#include "log.h"
#include "util.h"
#include "log.h"

// Not using memset for zeroing memory, cause it can be dropped by compiler
// See https://github.com/cesanta/mongoose/pull/1265
Expand All @@ -21,24 +21,22 @@ bool mg_random(void *buf, size_t len) {
while (len--) *p++ = (unsigned char) (get_rand_32() & 255);
success = true;
#elif MG_ARCH == MG_ARCH_WIN32
static bool initialised = false;
#if defined(_MSC_VER) && _MSC_VER < 1700
static bool initialised = false;
static HCRYPTPROV hProv;
// CryptGenRandom() implementation earlier than 2008 is weak, see
// https://en.wikipedia.org/wiki/CryptGenRandom
if (initialised == false) {
if (!initialised) {
initialised = CryptAcquireContext(&hProv, NULL, NULL, PROV_RSA_FULL,
CRYPT_VERIFYCONTEXT);
}
if (initialised == true) {
success = CryptGenRandom(hProv, len, p);
}
if (initialised) success = CryptGenRandom(hProv, len, p);
#else
size_t i;
for (i = 0; i < len; i++) {
unsigned int rand_v;
if (rand_s(&rand_v) == 0) {
p[i] = (unsigned char)(rand_v & 255);
p[i] = (unsigned char) (rand_v & 255);
} else {
break;
}
Expand Down
4 changes: 2 additions & 2 deletions test/cube/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ all: $(PROJECTS)
$(DOCKER) $(IMAGE) $(PATHTO)headless-build.sh -data workspace -removeAll workspace

$(PROJECTS): FORCE
(make -C $@ && make -C $@ clean) || ( \
(make -C $@ && sudo make -C $@ clean) || ( \
COREDIRS=`find $@ -maxdepth 1 -name 'CM*' -print` && ( \
(test "$$COREDIRS" == "" && \
(test "$$COREDIRS" = "" && \
PROJNAME=`xq -r .projectDescription.name $@/.project` && \
$(DOCKER) $(IMAGE) $(PATHTO)headless-build.sh -data workspace -import $@ -cleanBuild $$PROJNAME/$(TARGET) ) || ( \
(test "$$COREDIRS" != "" && \
Expand Down
5 changes: 4 additions & 1 deletion test/pico-sdk/Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
PROJECTS ?= $(wildcard ../../examples/pico-sdk/*-picosdk-*)
SDK_PATH ?= $(realpath $(PWD))/pico-sdk
SDK_VERSION ?= 2.0.0
SDK_VERSION ?= 2.1.0

all: $(PROJECTS)
echo
Expand All @@ -24,4 +24,7 @@ clean:
# Wizard-style board name --> Pico-SDK board name; SDKBNAME = table[BOARD]
SDK_evb-pico := pico
SDK_evb-pico2 := pico2
SDK_evb-pico2-w5100 := pico2
SDK_pico-w := pico_w
SDK_pico2-w := pico2_w
SDKBNAME = $(SDK_$(BOARD))
4 changes: 4 additions & 0 deletions test/unit_test.c
Original file line number Diff line number Diff line change
Expand Up @@ -2212,8 +2212,12 @@ static void test_str(void) {
TESTDOUBLE("%.1f", 0.155, "0.2");

TESTDOUBLE("%.3f", 13.12505, "13.125");
#if MG_ARCH == MG_ARCH_WIN32 && defined(_MSC_VER) && _MSC_VER < 1700
// TODO(): for some reason we round down in VC98; skip
#else
TESTDOUBLE("%.3f", 15.1255, "15.126");
TESTDOUBLE("%.3f", 19.1255, "19.125");
#endif
TESTDOUBLE("%.4f", 100.15, "100.1500");
TESTDOUBLE("%.2f", 5.55, "5.55");

Expand Down
131 changes: 68 additions & 63 deletions test/wizard/test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,78 +16,83 @@ cd `dirname "$0"`
rm test.log


#STM32="f207 f429 f439 f746 f756 f767 h563 h573 h723 h735 h743 h745 h747 h753 h755"
#STIDES="GCC+make CubeIDE"
## Keil: f756
#for board in $STM32; do
# for ide in $STIDES; do
# for rtos in $RTOSES; do
# dotest $board $ide $rtos
# done
# done
#done
#
#
#NXP="mcxn947"
#NXPIDES="GCC+make MCUXpresso"
#for board in $NXP; do
# for ide in $NXPIDES; do
# for rtos in $RTOSES; do
# dotest $board $ide $rtos
# done
# done
#done
#NXP="rt1020 rt1024 rt1040 rt1060 rt1064 rt1170"
#for board in $NXP; do
# dotest $board "GCC+make" "baremetal"
#done
#
#
#INFINEON="xmc4400 xmc4700 xmc7200"
#INFINEONIDES="GCC+make"
#for board in $INFINEON; do
# for ide in $INFINEONIDES; do
# for rtos in "baremetal"; do
# dotest $board $ide $rtos
# done
# done
#done
#
#
#TI="tm4c129"
#TIIDES="GCC+make"
#for board in $TI; do
# for ide in $TIIDES; do
# for rtos in $RTOSES; do
# dotest $board $ide $rtos
# done
# done
#done
#dotest "tms570" "CGT+make" "baremetal"
STM32="f207 f429 f439 f746 f756 f767 h563 h573 h723 h735 h743 h745 h747 h753 h755"
STIDES="GCC+make CubeIDE"
# Keil: f756
for board in $STM32; do
for ide in $STIDES; do
for rtos in $RTOSES; do
dotest $board $ide $rtos
done
done
done
dotest h7s3l8 GCC+make baremetal


PICO="evb-pico evb-pico2"
NXP="mcxn947"
NXPIDES="GCC+make MCUXpresso"
for board in $NXP; do
for ide in $NXPIDES; do
for rtos in $RTOSES; do
dotest $board $ide $rtos
done
done
done
NXP="rt1020 rt1024 rt1040 rt1060 rt1064 rt1170"
for board in $NXP; do
dotest $board "GCC+make" "baremetal"
done


INFINEON="xmc4400 xmc4700 xmc7200"
INFINEONIDES="GCC+make"
for board in $INFINEON; do
for ide in $INFINEONIDES; do
for rtos in "baremetal"; do
dotest $board $ide $rtos
done
done
done


TI="tm4c129"
TIIDES="GCC+make"
for board in $TI; do
for ide in $TIIDES; do
for rtos in $RTOSES; do
dotest $board $ide $rtos
done
done
done
dotest "tms570" "CGT+make" "baremetal"


PICO="evb-pico evb-pico2 evb-pico2-w5100 pico-w pico2-w"
for board in $PICO; do
for rtos in "baremetal"; do
dotest $board "Pico-SDK" $rtos
done
done


#ESP="esp32"
#for board in $ESP; do
# dotest $board "ESP-IDF" "baremetal"
#done
#
## h755 not supported in 3.7.0 branch; master branch currently not building
## other ST boards (PHY address != 0) might build and not work
#ZEPHYR="f207 f429 f746 f756 f767 h563 h573 h723 h735 h743 h745 h747 h753 mcxn947 rt1060 rt1064 evb-pico"
#for board in $ZEPHYR; do
# dotest $board "Zephyr" "baremetal"
ESP="esp32"
for board in $ESP; do
dotest $board "ESP-IDF" "baremetal"
done

# f439 not supported
# h755 not supported in 3.7.0 branch; master branch currently not building
# other ST boards (PHY address != 0) might build and not work
ZEPHYR="zephyr zephyr-w5500 f207 f429 f746 f756 f767 h563 h573 h723 h735 h743 h745 h747 h753 mcxn947 rt1060 rt1064 evb-pico"
for board in $ZEPHYR; do
dotest $board "Zephyr" "baremetal"
done


#ARDUINO="arduino arduino-esp32 teensy41"
#for board in $ARDUINO; do
# dotest $board "Arduino" "baremetal"
#done
#
#
#ARDUINO="teensy41"
#

rm -rf workspace pico-sdk mcuxpresso .cache .eclipse .p2 build
cd -
Loading