Skip to content

boards/nucleo-l412kb: add initial support#13660

Merged
benpicco merged 7 commits into
RIOT-OS:masterfrom
aabadie:review_nucleo_l412kb
Mar 20, 2020
Merged

boards/nucleo-l412kb: add initial support#13660
benpicco merged 7 commits into
RIOT-OS:masterfrom
aabadie:review_nucleo_l412kb

Conversation

@aabadie

@aabadie aabadie commented Mar 19, 2020

Copy link
Copy Markdown
Contributor

Contribution description

This PR is a take over of #12144 which adds support for the nucleo-l412kb board.

Compared to #12144, I dropped the support for RTC because it was not working and some work is needed to make it work properly on this CPU (the RTC_Typedef struct is quite different than other L4).

I2C, SPI, PWM are untested.

Testing procedure

Run the compile_and_test_for_board script:

./dist/tools/compile_and_test_for_board/compile_and_test_for_board.py . nucleo-l412kb --job=4 --with-test-only
ERROR:nucleo-l412kb:Tests failed: 12
Failures during test:
- [tests/driver_grove_ledbar](tests/driver_grove_ledbar/test.failed)
- [tests/driver_my9221](tests/driver_my9221/test.failed)
- [tests/emcute](tests/emcute/test.failed)
- [tests/gnrc_dhcpv6_client](tests/gnrc_dhcpv6_client/test.failed)
- [tests/gnrc_dhcpv6_client_6lbr](tests/gnrc_dhcpv6_client_6lbr/test.failed)
- [tests/gnrc_ipv6_ext](tests/gnrc_ipv6_ext/test.failed)
- [tests/gnrc_ipv6_ext_frag](tests/gnrc_ipv6_ext_frag/test.failed)
- [tests/gnrc_rpl_srh](tests/gnrc_rpl_srh/test.failed)
- [tests/gnrc_sock_dns](tests/gnrc_sock_dns/test.failed)
- [tests/gnrc_tcp](tests/gnrc_tcp/test.failed)
- [tests/periph_timer_short_relative_set](tests/periph_timer_short_relative_set/test.failed)
- [tests/pkg_libfixmath_unittests](tests/pkg_libfixmath_unittests/test.failed)
  • The GNRC usual suspects are failing because of missing tap setup and/or missing admin rights.
  • IIUC, tests/periph_timer_short_relative_set is expected to fail
  • Error output of tests/driver_grove_ledbar
Details
WARNING:nucleo-l412kb.tests/driver_grove_ledbar:make RIOT_CI_BUILD=1 CC_NOCOLOR=1 --no-print-directory -C ./tests/driver_grove_ledbar test
r
/work/riot/RIOT/dist/tools/pyterm/pyterm -p "/dev/ttyACM0" -b "115200" --no-reconnect --noprefix --no-repeat-command-on-empty-line
Connect to serial port /dev/ttyACM0
Welcome to pyterm!
Type '/exit' to exit.
READY
s
START
main(): This is RIOT! (Version: buildtest)
[START]
Timeout in expect script at "child.expect_exact(u"[SUCCESS]", timeout=60)" (tests/driver_grove_ledbar/tests/01-run.py:15)

make: *** [/work/riot/RIOT/tests/driver_grove_ledbar/../../Makefile.include:736: test] Error 1

Return value: 2

ERROR:nucleo-l412kb.tests/driver_grove_ledbar:Error during test, writing to results/nucleo-l412kb/tests/driver_grove_ledbar/test.failed
  • Error output of tests/driver_my9221:
Details
WARNING:nucleo-l412kb.tests/driver_my9221:make RIOT_CI_BUILD=1 CC_NOCOLOR=1 --no-print-directory -C ./tests/driver_my9221 test
r
/work/riot/RIOT/dist/tools/pyterm/pyterm -p "/dev/ttyACM0" -b "115200" --no-reconnect --noprefix --no-repeat-command-on-empty-line
Connect to serial port /dev/ttyACM0
Welcome to pyterm!
Type '/exit' to exit.
READY
s
START
main(): This is RIOT! (Version: buildtest)
[START]
Timeout in expect script at "child.expect_exact("[SUCCESS]", timeout=60)" (tests/driver_my9221/tests/01-run.py:15)

make: *** [/work/riot/RIOT/tests/driver_my9221/../../Makefile.include:736: test] Error 1

Return value: 2

ERROR:nucleo-l412kb.tests/driver_my9221:Error during test, writing to results/nucleo-l412kb/tests/driver_my9221/test.failed
  • Error output of tests/pkg_libfixmath_unittests:
Details
WARNING:nucleo-l412kb.tests/pkg_libfixmath_unittests:make RIOT_CI_BUILD=1 CC_NOCOLOR=1 --no-print-directory -C ./tests/pkg_libfixmath_unittests test
r
/work/riot/RIOT/dist/tools/pyterm/pyterm -p "/dev/ttyACM0" -b "115200" --no-reconnect --noprefix --no-repeat-command-on-empty-line
Connect to serial port /dev/ttyACM0
Welcome to pyterm!
Type '/exit' to exit.
READY
s
START
main(): This is RIOT! (Version: buildtest)

----Testing fix16_exp() corner cases----
OK: fix16_exp(0) == fix16_one
OK: fix16_exp(fix16_minimum) == 0
OK: fix16_exp(fix16_maximum) == fix16_maximum

----Testing fix16_exp() accuracy over -11..4----
Worst delta 39 with input 251543
Average delta 1.11
OK: max_delta < 200

----Testing fix16_exp() accuracy over full range----
Worst delta 0.0025% with input 323857
Average delta 0.0003%
OK: max_delta < 1

----Testing fix16_log() accuracy over full range----
Worst delta 3 with input 417752911
Average delta 0.30
OK: max_delta < 20
OK: F16(1.234) == F16C(1,234)
OK: F16(1.234) == fix16_from_dbl(1.234)
OK: F16(0.0) == F16C(0,0)
OK: F16(0.0) == fix16_from_dbl(0.0)
OK: F16(1.0) == F16C(1,0)
OK: F16(1.0) == fix16_from_dbl(1.0)
OK: F16(-1.0) == F16C(-1,0)
OK: F16(-1.0) == fix16_from_dbl(-1.0)
OK: F16(1.5) == F16C(1,5)
OK: F16(1.5) == fix16_from_dbl(1.5)
OK: F16(-1.5) == F16C(-1,5)
OK: F16(-1.5) == fix16_from_dbl(-1.5)
OK: F16(000000.00000) == F16C(000000,00000)
OK: F16(000000.00000) == fix16_from_dbl(000000.00000)
OK: F16(0.00001) == F16C(0,00001)
OK: F16(0.00001) == fix16_from_dbl(0.00001)
OK: F16(0.00010) == F16C(0,00010)
OK: F16(0.00010) == fix16_from_dbl(0.00010)
OK: F16(0.1) == F16C(0,1)
OK: F16(0.1) == fix16_from_dbl(0.1)
OK: F16(0.10001) == F16C(0,10001)
OK: F16(0.10001) == fix16_from_dbl(0.10001)
OK: F16(0.11000) == F16C(0,11000)
OK: F16(0.11000) == fix16_from_dbl(0.11000)
OK: F16(25.133) == F16C(25,133)
OK: F16(25.133) == fix16_from_dbl(25.133)
OK: F16(32767.00000) == F16C(32767,00000)
OK: F16(32767.00000) == fix16_from_dbl(32767.00000)
OK: F16(32767.00001) == F16C(32767,00001)
OK: F16(32767.00001) == fix16_from_dbl(32767.00001)
OK: F16(32767.99999) == F16C(32767,99999)
OK: F16(32767.99999) == fix16_from_dbl(32767.99999)
OK: F16(0.25) == F16C(0,25)
OK: F16(0.25) == fix16_from_dbl(0.25)
OK: F16(0.99555) == F16C(0,99555)
OK: F16(0.99555) == fix16_from_dbl(0.99555)
OK: F16(0.99998) == F16C(0,99998)
OK: F16(0.99998) == fix16_from_dbl(0.99998)
OK: F16(0.99999) == F16C(0,99999)
OK: F16(0.99999) == fix16_from_dbl(0.99999)
OK: F16(-1.1) == F16C(-1,1)
OK: F16(-1.1) == fix16_from_dbl(-1.1)
OK: F16(-25.133) == F16C(-25,133)
OK: F16(-25.133) == fix16_from_dbl(-25.133)
OK: F16(-32767.00001) == F16C(-32767,00001)
OK: F16(-32767.00001) == fix16_from_dbl(-32767.00001)
OK: F16(-32768.00000) == F16C(-32768,00000)
OK: F16(-32768.00000) == fix16_from_dbl(-32768.00000)
OK: F16(0.02267) == F16C(0,02267)
OK: F16(0.02267) == fix16_from_dbl(0.02267)
OK: F16(1.49887) == F16C(1,49887)
OK: F16(1.49887) == fix16_from_dbl(1.49887)
OK: F16(0.27589) == F16C(0,27589)
OK: F16(0.27589) == fix16_from_dbl(0.27589)
OK: F16(0.38393) == F16C(0,38393)
OK: F16(0.38393) == fix16_from_dbl(0.38393)
OK: F16(0.08934) == F16C(0,08934)
OK: F16(0.08934) == fix16_from_dbl(0.08934)
OK: F16(0.95820) == F16C(0,95820)
OK: F16(0.95820) == fix16_from_dbl(0.95820)
OK: F16(0.95596) == F16C(0,95596)
OK: F16(0.95596) == fix16_from_dbl(0.95596)
OK: F16(72.10642) == F16C(72,10642)
OK: F16(72.10642) == fix16_from_dbl(72.10642)
OK: F16(0.48939) == F16C(0,48939)
OK: F16(0.48939) == fix16_from_dbl(0.48939)
OK: F16(3.37797) == F16C(3,37797)
OK: F16(3.37797) == fix16_from_dbl(3.37797)
OK: F16(1.09194) == F16C(1,09194)
OK: F16(1.09194) == fix16_from_dbl(1.09194)
OK: F16(0.08605) == F16C(0,08605)
OK: F16(0.08605) == fix16_from_dbl(0.08605)
OK: F16(3.04349) == F16C(3,04349)
OK: F16(3.04349) == fix16_from_dbl(3.04349)
OK: F16(3.95401) == F16C(3,95401)
OK: F16(3.95401) == fix16_from_dbl(3.95401)
OK: F16(15.36292) == F16C(15,36292)
OK: F16(15.36292) == fix16_from_dbl(15.36292)
OK: F16(56.09242) == F16C(56,09242)
OK: F16(56.09242) == fix16_from_dbl(56.09242)
OK: F16(0.54071) == F16C(0,54071)
OK: F16(0.54071) == fix16_from_dbl(0.54071)
OK: F16(27.08953) == F16C(27,08953)
OK: F16(27.08953) == fix16_from_dbl(27.08953)
OK: F16(0.03913) == F16C(0,03913)
OK: F16(0.03913) == fix16_from_dbl(0.03913)
OK: F16(1.32707) == F16C(1,32707)
OK: F16(1.32707) == fix16_from_dbl(1.32707)
OK: F16(4.50117) == F16C(4,50117)
OK: F16(4.50117) == fix16_from_dbl(4.50117)
OK: F16(0.24990) == F16C(0,24990)
OK: F16(0.24990) == fix16_from_dbl(0.24990)
OK: F16(44.77319) == F16C(44,77319)
OK: F16(44.77319) == fix16_from_dbl(44.77319)
OK: F16(2.59139) == F16C(2,59139)
OK: F16(2.59139) == fix16_from_dbl(2.59139)
OK: F16(0.16279) == F16C(0,16279)
OK: F16(0.16279) == fix16_from_dbl(0.16279)
OK: F16(17.14712) == F16C(17,14712)
OK: F16(17.14712) == fix16_from_dbl(17.14712)
OK: F16(11.54281) == F16C(11,54281)
OK: F16(11.54281) == fix16_from_dbl(11.54281)
OK: F16(0.02768) == F16C(0,02768)
OK: F16(0.02768) == fix16_from_dbl(0.02768)
OK: F16(0.39278) == F16C(0,39278)
OK: F16(0.39278) == fix16_from_dbl(0.39278)
OK: F16(0.19369) == F16C(0,19369)
OK: F16(0.19369) == fix16_from_dbl(0.19369)
OK: F16(-0.04534) == F16C(-0,04534)
OK: F16(-0.04534) == fix16_from_dbl(-0.04534)
OK: F16(-0.00349) == F16C(-0,00349)
OK: F16(-0.00349) == fix16_from_dbl(-0.00349)
OK: F16(-2.30380) == F16C(-2,30380)
OK: F16(-2.30380) == fix16_from_dbl(-2.30380)
OK: F16(-0.03061) == F16C(-0,03061)
OK: F16(-0.03061) == fix16_from_dbl(-0.03061)
OK: F16(-7.50065) == F16C(-7,50065)
OK: F16(-7.50065) == fix16_from_dbl(-7.50065)
OK: F16(-3.97050) == F16C(-3,97050)
OK: F16(-3.97050) == fix16_from_dbl(-3.97050)
OK: F16(-0.43898) == F16C(-0,43898)
OK: F16(-0.43898) == fix16_from_dbl(-0.43898)
OK: F16(-3.49876) == F16C(-3,49876)
OK: F16(-3.49876) == fix16_from_dbl(-3.49876)
OK: F16(-1.35942) == F16C(-1,35942)
OK: F16(-1.35942) == fix16_from_dbl(-1.35942)
OK: F16(-10.81154) == F16C(-10,81154)
OK: F16(-10.81154) == fix16_from_dbl(-10.81154)
OK: F16(-0.26676) == F16C(-0,26676)
OK: F16(-0.26676) == fix16_from_dbl(-0.26676)
OK: F16(-9.52134) == F16C(-9,52134)
OK: F16(-9.52134) == fix16_from_dbl(-9.52134)
OK: F16(-0.42592) == F16C(-0,42592)
OK: F16(-0.42592) == fix16_from_dbl(-0.42592)
OK: F16(-0.05424) == F16C(-0,05424)
OK: F16(-0.05424) == fix16_from_dbl(-0.05424)
OK: F16(-0.62461) == F16C(-0,62461)
OK: F16(-0.62461) == fix16_from_dbl(-0.62461)
OK: F16(-0.21562) == F16C(-0,21562)
OK: F16(-0.21562) == fix16_from_dbl(-0.21562)
OK: F16(-0.22366) == F16C(-0,22366)
OK: F16(-0.22366) == fix16_from_dbl(-0.22366)
OK: F16(-0.09074) == F16C(-0,09074)
OK: F16(-0.09074) == fix16_from_dbl(-0.09074)
OK: F16(-1.29527) == F16C(-1,29527)
OK: F16(-1.29527) == fix16_from_dbl(-1.29527)
OK: F16(-4.98427) == F16C(-4,98427)
OK: F16(-4.98427) == fix16_from_dbl(-4.98427)
OK: F16(-0.10721) == F16C(-0,10721)
OK: F16(-0.10721) == fix16_from_dbl(-0.10721)
OK: F16(-11.39446) == F16C(-11,39446)
OK: F16(-11.39446) == fix16_from_dbl(-11.39446)
OK: F16(-451.53916) == F16C(-451,53916)
OK: F16(-451.53916) == fix16_from_dbl(-451.53916)
OK: F16(-0.04279) == F16C(-0,04279)
OK: F16(-0.04279) == fix16_from_dbl(-0.04279)
OK: F16(-3.36543) == F16C(-3,36543)
OK: F16(-3.36543) == fix16_from_dbl(-3.36543)
OK: F16(-0.01003) == F16C(-0,01003)
OK: F16(-0.01003) == fix16_from_dbl(-0.01003)
OK: F16(-12.08326) == F16C(-12,08326)
OK: F16(-12.08326) == fix16_from_dbl(-12.08326)
OK: F16(-1.07143) == F16C(-1,07143)
OK: F16(-1.07143) == fix16_from_dbl(-1.07143)
OK: F16(-1.07737) == F16C(-1,07737)
OK: F16(-1.07737) == fix16_from_dbl(-1.07737)
OK: F16(-0.22957) == F16C(-0,22957)
OK: F16(-0.22957) == fix16_from_dbl(-0.22957)

----Testing fix16_to_str corner cases----
1234.5678 = 1234.5678
OK: strcmp(buf, "1234.5678") == 0
-1234.5678 = -1234.5678
OK: strcmp(buf, "-1234.5678") == 0
OK: strcmp(buf, "0") == 0
OK: strcmp(buf, "1") == 0
(fix16_t)1 = 0.00002
OK: strcmp(buf, "0.00002") == 0
(fix16_t)-1 = -0.00002
OK: strcmp(buf, "-0.00002") == 0
(fix16_t)65535 = 0.99998
OK: strcmp(buf, "0.99998") == 0
(fix16_t)65535 = 1.0000
OK: strcmp(buf, "1.0000") == 0
fix16_maximum = 32767.99998
OK: strcmp(buf, "32767.99998") == 0
fix16_minimum = -32768.00000
OK: strcmp(buf, "-32768.00000") == 0

----Testing fix16_from_str corner cases----
OK: fix16_from_str("1234.5678") == fix16_from_dbl(1234.5678)
OK: fix16_from_str("-1234.5678") == fix16_from_dbl(-1234.5678)
OK: fix16_from_str("   +1234,56780   ") == fix16_from_dbl(1234.5678)
OK: fix16_from_str("0") == 0
OK: fix16_from_str("1") == fix16_one
OK: fix16_from_str("1.0") == fix16_one
OK: fix16_from_str("1.0000000000") == fix16_one
OK: fix16_from_str("0.00002") == 1
OK: fix16_from_str("0.99998") == 65535
OK: fix16_from_str("32767.99998") == fix16_maximum
OK: fix16_from_str("-32768.00000") == fix16_minimum

----Extended testing for whole range----
OK: ok

----Testing basic multiplication----
OK: fix16_mul(fix16_from_int(5), fix16_from_int(5)) == fix16_from_int(25)
OK: fix16_mul(fix16_from_int(-5), fix16_from_int(5)) == fix16_from_int(-25)
OK: fix16_mul(fix16_from_int(-5), fix16_from_int(-5)) == fix16_from_int(25)
OK: fix16_mul(fix16_from_int(5), fix16_from_int(-5)) == fix16_from_int(-25)

----Testing multiplication rounding corner cases----
OK: fix16_mul(0, 10) == 0
OK: fix16_mul(2, 0x8000) == 1
OK: fix16_mul(-2, 0x8000) == -1
OK: fix16_mul(3, 0x8000) == 2
OK: fix16_mul(-3, 0x8000) == -2
OK: fix16_mul(2, 0x7FFF) == 1
OK: fix16_mul(-2, 0x7FFF) == -1
OK: fix16_mul(2, 0x8001) == 1
OK: fix16_mul(-2, 0x8001) == -1

----Running testcases for multiplication----
OK: failures == 0

----Testing basic division----
OK: fix16_div(fix16_from_int(15), fix16_from_int(5)) == fix16_from_int(3)
OK: fix16_div(fix16_from_int(-15), fix16_from_int(5)) == fix16_from_int(-3)
OK: fix16_div(fix16_from_int(-15), fix16_from_int(-5)) == fix16_from_int(3)
OK: fix16_div(fix16_from_int(15), fix16_from_int(-5)) == fix16_from_int(-3)

----Testing division rounding corner cases----
OK: fix16_div(0, 10) == 0
OK: fix16_div(1, fix16_from_int(2)) == 1
OK: fix16_div(-1, fix16_from_int(2)) == -1
OK: fix16_div(1, fix16_from_int(-2)) == -1
OK: fix16_div(-1, fix16_from_int(-2)) == 1
OK: fix16_div(3, fix16_from_int(2)) == 2
OK: fix16_div(-3, fix16_from_int(2)) == -2
OK: fix16_div(3, fix16_from_int(-2)) == -2
OK: fix16_div(-3, fix16_from_int(-2)) == 2
OK: fix16_div(2, 0x7FFF) == 4
OK: fix16_div(-2, 0x7FFF) == -4
OK: fix16_div(2, 0x8001) == 4
OK: fix16_div(-2, 0x8001) == -4

----Running testcases for division----

1.000000 / -32768.000000 = -0.000031
1.000000 / -32768.000000 = -0.000031

-1.000000 / -32768.000000 = 0.000031
-1.000000 / -32768.000000 = 0.000031

2.000000 / -32768.000000 = -0.000061
2.000000 / -32768.000000 = -0.000061

-2.000000 / -32768.000000 = 0.000061
-2.000000 / -32768.000000 = 0.000061

3.000000 / -32768.000000 = -0.000092
3.000000 / -32768.000000 = -0.000092

-3.000000 / -32768.000000 = 0.000092
-3.000000 / -32768.000000 = 0.000092

4.000000 / -32768.000000 = -0.000122
4.000000 / -32768.000000 = -0.000122

-4.000000 / -32768.000000 = 0.000122
-4.000000 / -32768.000000 = 0.000122

5.000000 / -32768.000000 = -0.000153
5.000000 / -32768.000000 = -0.000153

-5.000000 / -32768.000000 = 0.000153
-5.000000 / -32768.000000 = 0.000153

6.000000 / -32768.000000 = -0.000183
6.000000 / -32768.000000 = -0.000183

-6.000000 / -32768.000000 = 0.000183
-6.000000 / -32768.000000 = 0.000183

0.500000 / -32768.000000 = -0.000015
0.500000 / -32768.000000 = -0.000015

-0.500000 / -32768.000000 = 0.000015
-0.500000 / -32768.000000 = 0.000015

0.999985 / -32768.000000 = -0.000031
0.999985 / -32768.000000 = -0.000031

-0.999985 / -32768.000000 = 0.000031
-0.999985 / -32768.000000 = 0.000031

1.999985 / -32768.000000 = -0.000061
1.999985 / -32768.000000 = -0.000061

-1.999985 / -32768.000000 = 0.000061
-1.999985 / -32768.000000 = 0.000061

3.999985 / -32768.000000 = -0.000122
3.999985 / -32768.000000 = -0.000122

-3.999985 / -32768.000000 = 0.000122
-3.999985 / -32768.000000 = 0.000122

32767.999985 / -32768.000000 = -1.000000
32767.999985 / -32768.000000 = -1.000000

-32768.000000 / -32768.000000 = 1.000000
-32768.000000 / -32768.000000 = 1.000000

12693.159363 / -32768.000000 = -0.387360
12693.159363 / -32768.000000 = -0.387364

8770.674332 / -32768.000000 = -0.267654
8770.674332 / -32768.000000 = -0.267660

32764.774979 / -32768.000000 = -0.999908
32764.774979 / -32768.000000 = -0.999902

-7158.829559 / -32768.000000 = 0.218475
-7158.829559 / -32768.000000 = 0.218470

-14673.028793 / -32768.000000 = 0.447784
-14673.028793 / -32768.000000 = 0.447785

28106.082672 / -32768.000000 = -0.857727
28106.082672 / -32768.000000 = -0.857730

30406.164383 / -32768.000000 = -0.927917
30406.164383 / -32768.000000 = -0.927922

7941.976990 / -32768.000000 = -0.242371
7941.976990 / -32768.000000 = -0.242370

8552.903992 / -32768.000000 = -0.261017
8552.903992 / -32768.000000 = -0.261014

-31967.057037 / -32768.000000 = 0.975555
-31967.057037 / -32768.000000 = 0.975557

-13380.394638 / -32768.000000 = 0.408340
-13380.394638 / -32768.000000 = 0.408337

-1034.753860 / -32768.000000 = 0.031586
-1034.753860 / -32768.000000 = 0.031578

32748.826462 / -32768.000000 = -0.999420
32748.826462 / -32768.000000 = -0.999415

7779.875778 / -32768.000000 = -0.237427
7779.875778 / -32768.000000 = -0.237423

-16381.433975 / -32768.000000 = 0.499924
-16381.433975 / -32768.000000 = 0.499922

0.465698 / -32768.000000 = -0.000015
0.465698 / -32768.000000 = -0.000014

-1.275436 / -32768.000000 = 0.000046
-1.275436 / -32768.000000 = 0.000039

0.627579 / -32768.000000 = -0.000015
0.627579 / -32768.000000 = -0.000019

0.642960 / -32768.000000 = -0.000015
0.642960 / -32768.000000 = -0.000020

0.893204 / -32768.000000 = -0.000031
0.893204 / -32768.000000 = -0.000027

1.283905 / -32768.000000 = -0.000046
1.283905 / -32768.000000 = -0.000039

-0.431564 / -32768.000000 = 0.000015
-0.431564 / -32768.000000 = 0.000013

1.387238 / -32768.000000 = -0.000046
1.387238 / -32768.000000 = -0.000042

0.303116 / -32768.000000 = -0.000015
0.303116 / -32768.000000 = -0.000009

0.506454 / -32768.000000 = -0.000015
0.506454 / -32768.000000 = -0.000015

1.248840 / -32768.000000 = -0.000031
1.248840 / -32768.000000 = -0.000038

-1.011246 / -32768.000000 = 0.000031
-1.011246 / -32768.000000 = 0.000031

-0.964584 / -32768.000000 = 0.000031
-0.964584 / -32768.000000 = 0.000029

-0.678391 / -32768.000000 = 0.000015
-0.678391 / -32768.000000 = 0.000021

1.286240 / -32768.000000 = -0.000046
1.286240 / -32768.000000 = -0.000039

0.725021 / -32768.000000 = -0.000015
0.725021 / -32768.000000 = -0.000022

-0.600037 / -32768.000000 = 0.000015
-0.600037 / -32768.000000 = 0.000018
FAILED: fix16_unittests.c:194 failures == 0

----Running testcases for addition----
OK: failures == 0

----Running testcases for subtraction----
OK: failures == 0

----Testing basic square roots----
OK: fix16_sqrt(fix16_from_int(16)) == fix16_from_int(4)
OK: fix16_sqrt(fix16_from_int(100)) == fix16_from_int(10)
OK: fix16_sqrt(fix16_from_int(1)) == fix16_from_int(1)

----Testing square root rounding corner cases----
OK: fix16_sqrt(214748302) == 3751499
OK: fix16_sqrt(214748303) == 3751499
OK: fix16_sqrt(214748359) == 3751499
OK: fix16_sqrt(214748360) == 3751500

----Running test cases for square root----
OK: failures == 0


Some tests FAILED!
Timeout in expect script at "child.expect('SUCCESS', timeout=TIMEOUT)" (tests/pkg_libfixmath_unittests/tests/01-run.py:18)

make: *** [/work/riot/RIOT/tests/pkg_libfixmath_unittests/../../Makefile.include:736: test] Error 1

Return value: 2

ERROR:nucleo-l412kb.tests/pkg_libfixmath_unittests:Error during test, writing to results/nucleo-l412kb/tests/pkg_libfixmath_unittests/test.failed

Issues/PRs references

Take over from #12144

@aabadie aabadie added Type: new feature The issue requests / The PR implemements a new feature for RIOT CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR Area: boards Area: Board ports labels Mar 19, 2020
@aabadie aabadie mentioned this pull request Mar 19, 2020
@benpicco

Copy link
Copy Markdown
Contributor

A few more Makefile.cis need to be updated.

@fjmolinas fjmolinas left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code is good and I trust @aabadie testing. Just needs a little more blacklisting and we are good. ACK!

@aabadie aabadie force-pushed the review_nucleo_l412kb branch from 00d6774 to ebca569 Compare March 20, 2020 17:51
@benpicco benpicco merged commit 2a35216 into RIOT-OS:master Mar 20, 2020
@aabadie aabadie deleted the review_nucleo_l412kb branch March 21, 2020 17:37
@leandrolanzieri leandrolanzieri added this to the Release 2020.04 milestone Mar 26, 2020
@aabadie aabadie mentioned this pull request May 26, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area: boards Area: Board ports CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR Type: new feature The issue requests / The PR implemements a new feature for RIOT

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants