CMSIS-DSP: Test framework improvement

Added gcc support for M55 FVP.
pull/19/head
Christophe Favergeon 6 years ago
parent 11b7758815
commit cb125bba76

@ -29,6 +29,8 @@
#error device not specified!
#endif
#include <stdio.h>
/*----------------------------------------------------------------------------
Exception / Interrupt Handler Function Prototype
*----------------------------------------------------------------------------*/
@ -120,6 +122,48 @@ extern const pFunc __VECTOR_TABLE[240];
#pragma GCC diagnostic pop
#endif
#define SERIAL_BASE_ADDRESS (0xA8000000ul)
#define SERIAL_DATA *((volatile unsigned *) SERIAL_BASE_ADDRESS)
int stdout_putchar(char txchar)
{
SERIAL_DATA = txchar;
return(txchar);
}
int stderr_putchar(char txchar)
{
return stdout_putchar(txchar);
}
__attribute__((constructor(255)))
void platform_init(void)
{
printf("\n_[TEST START]____________________________________________________\n");
}
#define log_str(...) \
do { \
const char *pchSrc = __VA_ARGS__; \
uint_fast16_t hwSize = sizeof(__VA_ARGS__); \
do { \
stdout_putchar(*pchSrc++); \
} while(--hwSize); \
} while(0)
void _exit(int return_code)
{
(void)return_code;
log_str("\n");
log_str("_[TEST COMPLETE]_________________________________________________\n");
log_str("\n\n");
stdout_putchar(4);
while(1);
}
/*----------------------------------------------------------------------------
@ -153,3 +197,16 @@ void Default_Handler(void)
}
int _write(int file,
char *ptr,
int len)
{
int i;
(void)file;
for(i=0; i < len;i++)
{
stdout_putchar(*ptr++);
}
return len;
}

@ -141,4 +141,10 @@ In addition to that, ARM_DSP_CONFIG_TABLES must be enabled and finally ARM_FFT_A
This last symbol is required because if no transform functions are included in the build, then by default all flags related to FFT tables are ignored.
## Bit Reverse Tables CMSIS DSP
It is a question coming often.
It is now detailed [in this github issue](https://github.com/ARM-software/CMSIS_5/issues/858)
Someone from the community has written a [Python script to help](https://gist.github.com/rosek86/d0d709852fddf36193071d7f61987bae)

@ -82,6 +82,7 @@ option(EMBEDDED "Embedded Mode" ON)
option(FLOAT16TESTS "Float16 tests" OFF)
option(MICROBENCH "Micro benchmarks" OFF)
option(EIGEIN "Eigen benchmarks" OFF)
project(Testing)
@ -110,6 +111,8 @@ add_library(FrameworkLib STATIC)
if (BENCHMARK)
set(STANDARDBENCH ON)
if (MICROBENCH)
set (MICROSRC
Source/Benchmarks/MicroBenchmarksF32.cpp
@ -117,6 +120,15 @@ if (MICROBENCH)
Source/Benchmarks/MicroBenchmarksQ15.cpp
Source/Benchmarks/MicroBenchmarksQ7.cpp
)
set(STANDARDBENCH OFF)
endif()
if (EIGEN)
set (EIGENSRC
${EIGENBENCH}/VectorBenchmarksF32.cpp
)
set(STANDARDBENCH OFF)
endif()
set (NNSRC
@ -124,49 +136,52 @@ set (NNSRC
Source/Benchmarks/PoolingBench.cpp
)
set(TESTSRC
Source/Benchmarks/BasicMathsBenchmarksF32.cpp
Source/Benchmarks/BasicMathsBenchmarksQ31.cpp
Source/Benchmarks/BasicMathsBenchmarksQ15.cpp
Source/Benchmarks/BasicMathsBenchmarksQ7.cpp
Source/Benchmarks/ComplexMathsBenchmarksF32.cpp
Source/Benchmarks/ComplexMathsBenchmarksQ31.cpp
Source/Benchmarks/ComplexMathsBenchmarksQ15.cpp
Source/Benchmarks/FIRF32.cpp
Source/Benchmarks/FIRQ31.cpp
Source/Benchmarks/FIRQ15.cpp
Source/Benchmarks/MISCF32.cpp
Source/Benchmarks/MISCQ31.cpp
Source/Benchmarks/MISCQ15.cpp
Source/Benchmarks/MISCQ7.cpp
Source/Benchmarks/DECIMF32.cpp
Source/Benchmarks/DECIMQ31.cpp
Source/Benchmarks/DECIMQ15.cpp
Source/Benchmarks/BIQUADF32.cpp
Source/Benchmarks/BIQUADF64.cpp
Source/Benchmarks/ControllerF32.cpp
Source/Benchmarks/ControllerQ31.cpp
Source/Benchmarks/ControllerQ15.cpp
Source/Benchmarks/FastMathF32.cpp
Source/Benchmarks/FastMathQ31.cpp
Source/Benchmarks/FastMathQ15.cpp
Source/Benchmarks/SupportF32.cpp
Source/Benchmarks/SupportBarF32.cpp
Source/Benchmarks/SupportQ31.cpp
Source/Benchmarks/SupportQ15.cpp
Source/Benchmarks/SupportQ7.cpp
Source/Benchmarks/UnaryF32.cpp
Source/Benchmarks/UnaryF64.cpp
Source/Benchmarks/UnaryQ31.cpp
Source/Benchmarks/UnaryQ15.cpp
Source/Benchmarks/BinaryF32.cpp
Source/Benchmarks/BinaryQ31.cpp
Source/Benchmarks/BinaryQ15.cpp
Source/Benchmarks/TransformF32.cpp
Source/Benchmarks/TransformQ31.cpp
Source/Benchmarks/TransformQ15.cpp
)
target_include_directories(TestingLib PRIVATE Include/Benchmarks)
if (STANDARDBENCH)
set(TESTSRC
Source/Benchmarks/BasicMathsBenchmarksF32.cpp
Source/Benchmarks/BasicMathsBenchmarksQ31.cpp
Source/Benchmarks/BasicMathsBenchmarksQ15.cpp
Source/Benchmarks/BasicMathsBenchmarksQ7.cpp
Source/Benchmarks/ComplexMathsBenchmarksF32.cpp
Source/Benchmarks/ComplexMathsBenchmarksQ31.cpp
Source/Benchmarks/ComplexMathsBenchmarksQ15.cpp
Source/Benchmarks/FIRF32.cpp
Source/Benchmarks/FIRQ31.cpp
Source/Benchmarks/FIRQ15.cpp
Source/Benchmarks/MISCF32.cpp
Source/Benchmarks/MISCQ31.cpp
Source/Benchmarks/MISCQ15.cpp
Source/Benchmarks/MISCQ7.cpp
Source/Benchmarks/DECIMF32.cpp
Source/Benchmarks/DECIMQ31.cpp
Source/Benchmarks/DECIMQ15.cpp
Source/Benchmarks/BIQUADF32.cpp
Source/Benchmarks/BIQUADF64.cpp
Source/Benchmarks/ControllerF32.cpp
Source/Benchmarks/ControllerQ31.cpp
Source/Benchmarks/ControllerQ15.cpp
Source/Benchmarks/FastMathF32.cpp
Source/Benchmarks/FastMathQ31.cpp
Source/Benchmarks/FastMathQ15.cpp
Source/Benchmarks/SupportF32.cpp
Source/Benchmarks/SupportBarF32.cpp
Source/Benchmarks/SupportQ31.cpp
Source/Benchmarks/SupportQ15.cpp
Source/Benchmarks/SupportQ7.cpp
Source/Benchmarks/UnaryF32.cpp
Source/Benchmarks/UnaryF64.cpp
Source/Benchmarks/UnaryQ31.cpp
Source/Benchmarks/UnaryQ15.cpp
Source/Benchmarks/BinaryF32.cpp
Source/Benchmarks/BinaryQ31.cpp
Source/Benchmarks/BinaryQ15.cpp
Source/Benchmarks/TransformF32.cpp
Source/Benchmarks/TransformQ31.cpp
Source/Benchmarks/TransformQ15.cpp
)
target_include_directories(TestingLib PRIVATE Include/Benchmarks)
endif()
else()
set(NNSRC
@ -298,6 +313,13 @@ if (BENCHMARK)
if (MICROBENCH)
target_sources(TestingLib PRIVATE ${MICROSRC})
endif()
if (EIGEN)
target_sources(TestingLib PRIVATE ${EIGENSRC})
target_include_directories(TestingLib PUBLIC "${EIGENBENCH}/Include")
target_include_directories(TestingLib PUBLIC "${EIGENDIR}")
endif()
endif()

@ -0,0 +1,42 @@
import os.path
import numpy as np
import itertools
import Tools
# Those patterns are used for tests and benchmarks.
# For tests, there is the need to add tests for saturation
def writeTests(config,format):
NBSAMPLES=256
data1=np.random.randn(NBSAMPLES)
data2=np.random.randn(NBSAMPLES)
data3=np.random.randn(1)
data1 = Tools.normalize(data1)
data2 = Tools.normalize(data2)
# temp for debug of f16
config.writeInput(1, data1)
config.writeInput(2, data2)
ref = data1 + data2
config.writeReference(1, ref)
#nb = Tools.loopnb(format,Tools.TAILONLY)
#nb = Tools.loopnb(format,Tools.BODYONLY)
#nb = Tools.loopnb(format,Tools.BODYANDTAIL)
def generatePatterns():
PATTERNDIR = os.path.join("Patterns","EigenBenchmarks","VectorBenchmarks","VectorBenchmarks")
PARAMDIR = os.path.join("Parameters","EigenBenchmarks","VectorBenchmarks","VectorBenchmarks")
configf32=Tools.Config(PATTERNDIR,PARAMDIR,"f32")
writeTests(configf32,0)
if __name__ == '__main__':
generatePatterns()

@ -0,0 +1,514 @@
W
256
// 0.344260
0x3eb042dd
// 0.216977
0x3e5e2f35
// 0.701575
0x3f339a67
// -0.274448
0xbe8c847d
// -0.153288
0xbe1cf791
// 0.312017
0x3e9fc0bb
// 0.547499
0x3f0c28ea
// 0.231762
0x3e6d5320
// -0.070936
0xbd9146f2
// -0.034421
0xbd0cfcc2
// -0.060913
0xbd797f89
// -0.175888
0xbe341c08
// -0.547832
0xbf0c3ebb
// -0.500285
0xbf0012ae
// 0.145488
0x3e14fab8
// -0.351225
0xbeb3d3c1
// 0.653280
0x3f273d62
// 0.284676
0x3e91c101
// 0.236506
0x3e722ebe
// -0.464373
0xbeedc25d
// -0.218742
0xbe5ffddc
// 0.083309
0x3daa9db3
// -0.054270
0xbd5e4aa7
// 0.045006
0x3d385837
// 0.184335
0x3e3cc262
// -0.335996
0xbeac07b2
// 0.160630
0x3e247c3e
// -0.007457
0xbbf457d5
// -0.289020
0xbe93fa76
// 0.247130
0x3e7d0fb2
// -0.145158
0xbe14a449
// -0.078841
0xbda17793
// -0.220477
0xbe61c4b5
// 0.550158
0x3f0cd72d
// 0.346652
0x3eb17c63
// 0.314947
0x3ea140c9
// 0.326173
0x3ea70019
// -0.330829
0xbea96269
// -0.027217
0xbcdef551
// 0.132792
0x3e07fab9
// -0.092076
0xbdbc923b
// 0.287784
0x3e935872
// 0.107870
0x3ddceabc
// -0.128443
0xbe0386a6
// -0.108622
0xbdde756c
// 0.242993
0x3e78d318
// -0.014099
0xbc66fe88
// 0.145819
0x3e1551a5
// 0.239599
0x3e755980
// -0.502160
0xbf008d8d
// 0.242730
0x3e788e29
// -0.346946
0xbeb1a2db
// 0.212811
0x3e59eb00
// -0.396812
0xbecb2af1
// 0.180991
0x3e3955b2
// -0.096707
0xbdc60e53
// 0.234095
0x3e6fb69e
// 0.057367
0x3d6af937
// 0.289552
0x3e944031
// 0.077712
0x3d9f273f
// 0.002018
0x3b043e60
// 0.245311
0x3e7b32dd
// -0.062176
0xbd7eabbf
// -0.219864
0xbe6123f3
// 0.424673
0x3ed96ebc
// -0.054423
0xbd5eea32
// -0.225940
0xbe675cde
// -0.226669
0xbe681bcc
// 0.620484
0x3f1ed808
// 0.102465
0x3dd1d8f5
// -0.203664
0xbe508d5b
// -0.230087
0xbe6b9bd9
// 0.419972
0x3ed7069d
// 0.312979
0x3ea03ed4
// 0.452894
0x3ee7e1bc
// -0.146499
0xbe1603bc
// 0.408251
0x3ed1064b
// -0.070785
0xbd90f7ea
// 0.251134
0x3e8094b3
// -0.027624
0xbce24b47
// 0.537568
0x3f099e09
// -0.303778
0xbe9b88c3
// -0.605831
0xbf1b17bc
// -0.097511
0xbdc7b3ba
// 0.088898
0x3db61064
// -0.045774
0xbd3b7d71
// 0.169351
0x3e2d6a3f
// -0.072080
0xbd939ec4
// -0.137132
0xbe0c6c5e
// -0.365910
0xbebb589d
// 0.301191
0x3e9a35bc
// -0.315095
0xbea15413
// 0.142340
0x3e11c198
// 0.204251
0x3e51273f
// 0.309885
0x3e9ea945
// 0.177406
0x3e35a9f7
// -0.243355
0xbe793214
// -0.219630
0xbe60e69b
// -0.144933
0xbe14693a
// -0.135644
0xbe0ae650
// -0.055451
0xbd6320a7
// -0.163408
0xbe275463
// 0.620769
0x3f1eeabe
// 0.078984
0x3da1c21b
// -0.155300
0xbe1f06f7
// 0.335820
0x3eabf08c
// -0.189160
0xbe41b318
// 0.415815
0x3ed4e5a4
// -0.366075
0xbebb6e27
// 0.769914
0x3f451917
// -0.390905
0xbec824aa
// -0.021731
0xbcb204e0
// -0.096704
0xbdc60cc2
// -0.303366
0xbe9b52c2
// -0.434682
0xbede8eaf
// -0.262158
0xbe863994
// -0.109278
0xbddfcd29
// -0.172143
0xbe30465d
// 0.183076
0x3e3b7861
// 0.446784
0x3ee4c0d9
// -0.390311
0xbec7d6cc
// -0.008610
0xbc0d0f6c
// 0.358829
0x3eb7b865
// -0.150437
0xbe1a0c19
// 0.368183
0x3ebc826d
// 0.058833
0x3d70fb1e
// 0.367402
0x3ebc1c1b
// -0.257558
0xbe83deb0
// -0.300412
0xbe99cf8f
// 0.140626
0x3e100026
// 0.406396
0x3ed0131a
// -0.076645
0xbd9cf7e4
// -0.362168
0xbeb96e18
// 0.073985
0x3d978584
// 0.463253
0x3eed2f75
// 0.588447
0x3f16a47c
// -0.002093
0xbb092274
// -0.087263
0xbdb2b6d9
// 0.042088
0x3d2c63fb
// -0.220115
0xbe6165cf
// -0.832860
0xbf55364c
// -0.439227
0xbee0e265
// 0.452512
0x3ee7af9c
// -0.001284
0xbaa855e0
// 0.001153
0x3a971527
// -0.213468
0xbe5a975f
// 0.033903
0x3d0addbc
// 0.036001
0x3d137626
// 0.141799
0x3e1133de
// 0.139228
0x3e0e91bd
// 0.121263
0x3df8587b
// -0.086090
0xbdb0500a
// 0.111177
0x3de3b0e9
// -0.398697
0xbecc2201
// -0.846493
0xbf58b3c0
// -0.394283
0xbec9df82
// 0.254980
0x3e828cb7
// 0.332764
0x3eaa6015
// 0.095733
0x3dc40f9c
// 0.354296
0x3eb56640
// 0.232592
0x3e6e2c85
// 0.020795
0x3caa5b34
// 0.005664
0x3bb99509
// 0.015387
0x3c7c18df
// -0.140506
0xbe0fe0ad
// -0.085201
0xbdae7dce
// 0.730542
0x3f3b04ce
// -0.475549
0xbef37b28
// 0.405000
0x3ecf5c38
// 0.477968
0x3ef4b833
// 0.071743
0x3d92ee3a
// 0.190427
0x3e42ff3a
// -0.199604
0xbe4c64fa
// -0.155970
0xbe1fb69c
// -0.526183
0xbf06b3f2
// -0.221521
0xbe62d65e
// -0.234103
0xbe6fb8c5
// -0.283123
0xbe90f57a
// -0.210075
0xbe571df6
// -0.261336
0xbe85cdd6
// 0.248029
0x3e7dfb6d
// 0.599670
0x3f1983f4
// 0.220368
0x3e61a82c
// 0.160053
0x3e23e4eb
// 0.146403
0x3e15ea92
// -0.306386
0xbe9cde9e
// 0.117957
0x3df19337
// -0.225993
0xbe676aad
// -0.242947
0xbe78c71b
// 0.235351
0x3e70ffdc
// 0.411999
0x3ed2f17b
// -0.142671
0xbe121855
// -0.580421
0xbf14967c
// 0.141241
0x3e10a171
// -0.338249
0xbead2f03
// -0.394875
0xbeca2d05
// -0.095196
0xbdc2f632
// -0.026498
0xbcd911c7
// 0.321753
0x3ea4bccd
// -0.282863
0xbe90d364
// 0.060947
0x3d79a3a7
// 0.337503
0x3eaccd21
// -0.469463
0xbef05d6e
// -0.315035
0xbea14c39
// 1.000000
0x3f800000
// -0.337499
0xbeacccbb
// -0.172702
0xbe30d8b2
// -0.442753
0xbee2b093
// -0.102026
0xbdd0f324
// -0.239829
0xbe75959d
// -0.268321
0xbe896153
// 0.302641
0x3e9af3ca
// -0.255109
0xbe829d95
// 0.069925
0x3d8f34aa
// 0.067365
0x3d89f6b8
// 0.233870
0x3e6f7b8b
// -0.073808
0xbd9728c6
// 0.641234
0x3f2427e4
// 0.391305
0x3ec85913
// -0.079334
0xbda279ff
// -0.015431
0xbc7cd24a
// 0.215485
0x3e5ca82f
// -0.291121
0xbe950dd8
// 0.966270
0x3f775d7c
// -0.189661
0xbe423693
// -0.469764
0xbef084f1
// -0.137391
0xbe0cb04b
// 0.111061
0x3de373e1
// -0.066381
0xbd87f286
// 0.127807
0x3e02dfe7
// -0.185434
0xbe3de26f
// 0.075527
0x3d9aadaf
// 0.015394
0x3c7c38de
// 0.517599
0x3f048161
// 0.649067
0x3f26293d
// 0.103351
0x3dd3a9f3
// -0.280768
0xbe8fc0cd
// 0.602634
0x3f1a4637
// -0.543623
0xbf0b2ae5
// -0.248191
0xbe7e25ca
// 0.200799
0x3e4d9e33
// -0.383915
0xbec4907b
// 0.091922
0x3dbc4196
// -0.157264
0xbe2109c9
// 0.079701
0x3da33a39
// 0.352660
0x3eb48fe3
// 0.424658
0x3ed96cb6
// 0.227121
0x3e689258
// 0.243494
0x3e79569c
// -0.111648
0xbde4a7a0
// 0.010129
0x3c25f526
// 0.006690
0x3bdb3638
// -0.071187
0xbd91ca79
// 0.561726
0x3f0fcd3f
// -0.272001
0xbe8b43b0
// -0.370929
0xbebdea71

@ -0,0 +1,514 @@
W
256
// -0.608883
0xbf1bdfca
// -0.182389
0xbe3ac427
// -0.526289
0xbf06bae3
// -0.357412
0xbeb6fec3
// -0.421216
0xbed7a9a0
// 0.035615
0x3d11e18c
// -0.144657
0xbe1420ff
// -0.254592
0xbe8259d1
// -0.079110
0xbda204a8
// -0.370365
0xbebda074
// 0.081252
0x3da66794
// -0.065525
0xbd8631cc
// -0.254482
0xbe824b7d
// -0.069698
0xbd8ebe10
// 0.474519
0x3ef2f425
// 0.063953
0x3d82f996
// 0.282007
0x3e906343
// 0.438598
0x3ee08fed
// -0.289484
0xbe943743
// -0.016971
0xbc8b0633
// -0.668683
0xbf2b2ecc
// 0.163997
0x3e27eed3
// 0.323271
0x3ea583ca
// -0.121527
0xbdf8e32f
// -0.402560
0xbece1c5e
// -0.037856
0xbd1b0f08
// 0.113986
0x3de97166
// -0.069150
0xbd8d9eae
// -0.280926
0xbe8fd598
// 0.220136
0x3e616b63
// -0.827154
0xbf53c05f
// 0.521275
0x3f057243
// -1.000000
0xbf800000
// -0.299488
0xbe995682
// 0.503483
0x3f00e43c
// 0.538171
0x3f09c597
// -0.069818
0xbd8efcf2
// 0.345872
0x3eb1161b
// -0.041450
0xbd29c71f
// -0.410932
0xbed265b3
// -0.743161
0xbf3e3fd4
// 0.941343
0x3f70fbdf
// -0.076698
0xbd9d13c2
// 0.356589
0x3eb692e1
// -0.040338
0xbd2538f2
// 0.233907
0x3e6f8532
// 0.428952
0x3edb9f8e
// 0.043308
0x3d316376
// 0.390221
0x3ec7cafb
// 0.438043
0x3ee04721
// -0.158814
0xbe22a038
// 0.051356
0x3d525ad1
// 0.329910
0x3ea8e9fd
// -0.181693
0xbe3a0db8
// 0.777608
0x3f471155
// -0.510156
0xbf029990
// 0.357730
0x3eb7286a
// 0.052386
0x3d569276
// 0.156348
0x3e201997
// 0.072619
0x3d94b937
// 0.216307
0x3e5d7f8b
// -0.680470
0xbf2e3350
// -0.013208
0xbc58684f
// 0.658505
0x3f2893c9
// 0.037227
0x3d187b44
// -0.083704
0xbdab6cd9
// 0.065769
0x3d86b1c0
// 0.216670
0x3e5dded2
// 0.276278
0x3e8d7446
// -0.047467
0xbd426ce3
// -0.168162
0xbe2c32a4
// 0.033429
0x3d08ecae
// 0.346382
0x3eb15909
// -0.078748
0xbda14679
// -0.404817
0xbecf441f
// -0.090564
0xbdb97992
// -0.044906
0xbd37eedf
// 0.498744
0x3eff5b56
// 0.041723
0x3d2ae5dd
// -0.850726
0xbf59c935
// 0.170360
0x3e2e72cc
// 0.375967
0x3ec07ebb
// 0.114046
0x3de990f9
// 0.416028
0x3ed5018f
// 0.214924
0x3e5c150e
// 0.219644
0x3e60ea4a
// 0.116906
0x3def6c3f
// -0.207159
0xbe54216c
// -0.075714
0xbd9b0ff8
// -0.146192
0xbe15b37c
// 0.074059
0x3d97ac11
// -0.301796
0xbe9a84fd
// -0.489313
0xbefa872c
// 0.002323
0x3b1840e6
// -0.520492
0xbf053efb
// 0.020082
0x3ca482d1
// -0.163455
0xbe2760c7
// 0.294314
0x3e96b046
// 0.256324
0x3e833ced
// -0.452644
0xbee7c0f4
// -0.775722
0xbf4695b4
// 0.078839
0x3da17675
// -0.369170
0xbebd03e0
// 0.226404
0x3e67d655
// 0.050769
0x3d4ff2fd
// -0.204872
0xbe51ca01
// -0.063212
0xbd817531
// 0.746003
0x3f3efa0d
// 0.080537
0x3da4f0a4
// -0.885687
0xbf62bc64
// 0.277304
0x3e8dfad7
// 0.135888
0x3e0b262a
// 0.909442
0x3f68d139
// -0.039330
0xbd21184e
// -0.287226
0xbe930f44
// -0.341751
0xbeaef9f0
// 0.092260
0x3dbcf30c
// 0.034191
0x3d0c0bfc
// 0.056666
0x3d681b0e
// -0.605077
0xbf1ae654
// -0.232184
0xbe6dc1c3
// -0.351488
0xbeb3f64b
// -0.189694
0xbe423f05
// -0.325801
0xbea6cf56
// 0.151875
0x3e1b8510
// -0.209927
0xbe56f700
// -0.129947
0xbe0510f0
// 0.004767
0x3b9c3862
// 0.112359
0x3de61cb8
// -0.647147
0xbf25ab6c
// -0.061236
0xbd7ad30b
// -0.163876
0xbe27cf03
// 0.208468
0x3e5578a0
// 0.359782
0x3eb8355c
// -0.300022
0xbe999c71
// -0.845498
0xbf587297
// -0.057182
0xbd6a37fa
// 0.227689
0x3e692742
// 0.344527
0x3eb065d1
// 0.118523
0x3df2bbfd
// -0.330549
0xbea93db9
// 0.281055
0x3e8fe671
// -0.250464
0xbe803cd7
// -0.170157
0xbe2e3dba
// -0.408447
0xbed11ff4
// -0.007132
0xbbe9b301
// 0.048704
0x3d477d8f
// -0.082620
0xbda934bd
// -0.173176
0xbe31550c
// -0.206236
0xbe532f9d
// -0.220250
0xbe618951
// -0.254806
0xbe8275e5
// 0.350425
0x3eb36ade
// -0.744001
0xbf3e76d9
// 0.182456
0x3e3ad5a9
// -0.744736
0xbf3ea704
// -0.160505
0xbe245b85
// 0.425375
0x3ed9cabb
// -0.243841
0xbe79b18f
// 0.321420
0x3ea49131
// -0.394316
0xbec9e3c0
// 0.284938
0x3e91e35e
// 0.066512
0x3d88373b
// -0.079249
0xbda24d6c
// -0.253727
0xbe81e876
// 0.014094
0x3c66eb01
// -0.145098
0xbe149478
// -0.050092
0xbd4d2d51
// -0.164295
0xbe283cf6
// 0.291247
0x3e951e56
// 0.123316
0x3dfc8cfc
// -0.476307
0xbef3de7f
// -0.034201
0xbd0c15f5
// -0.315061
0xbea14fb1
// -0.817911
0xbf51629b
// 0.045772
0x3d3b7bbb
// 0.104146
0x3dd54abc
// 0.532568
0x3f085665
// 0.127817
0x3e02e286
// -0.214581
0xbe5bbb34
// -0.241791
0xbe779815
// 0.042322
0x3d2d5a59
// 0.562544
0x3f1002e3
// -0.084882
0xbdadd683
// -0.330405
0xbea92ad5
// -0.119527
0xbdf4cac4
// 0.536931
0x3f09744e
// 0.229798
0x3e6b502f
// 0.440562
0x3ee19150
// -0.176197
0xbe346d02
// -0.147654
0xbe173286
// -0.274271
0xbe8c6d30
// -0.052682
0xbd57c8d9
// -0.147147
0xbe16ada8
// 0.178817
0x3e371be1
// 0.131281
0x3e066e92
// 0.243007
0x3e78d6e1
// -0.075271
0xbd9a27d9
// 0.332280
0x3eaa20a4
// -0.103490
0xbdd3f2ca
// 0.176557
0x3e34cb72
// 0.058402
0x3d6f3743
// 0.138308
0x3e0da07b
// -0.273335
0xbe8bf287
// 0.092822
0x3dbe1976
// 0.357487
0x3eb70896
// -0.207439
0xbe546ae1
// 0.436838
0x3edfa937
// 0.559709
0x3f0f4917
// -0.119478
0xbdf4b0f7
// 0.906080
0x3f67f4e1
// -0.099323
0xbdcb69da
// 0.280256
0x3e8f7dbb
// -0.139291
0xbe0ea243
// -0.441371
0xbee1fb64
// 0.091688
0x3dbbc6f0
// 0.143020
0x3e1273f4
// -0.394631
0xbeca0d0d
// 0.509247
0x3f025e01
// -0.226764
0xbe6834e2
// -0.089462
0xbdb737a0
// 0.456388
0x3ee9aba2
// 0.082301
0x3da88d6e
// -0.350518
0xbeb37720
// -0.501817
0xbf007715
// -0.558678
0xbf0f0588
// 0.131853
0x3e070459
// -0.480083
0xbef5cd62
// -0.162002
0xbe25e3c0
// -0.299893
0xbe998b9e
// -0.145527
0xbe1504e9
// 0.058109
0x3d6e0350
// 0.351770
0x3eb41b26
// 0.136681
0x3e0bf615
// -0.024059
0xbcc517db
// 0.396028
0x3ecac421
// 0.311976
0x3e9fbb45
// 0.142975
0x3e12680d
// 0.004849
0x3b9ee433
// 0.164602
0x3e288d4f
// 0.489011
0x3efa5f9d
// 0.319806
0x3ea3bd8e
// -0.243944
0xbe79cc72
// -0.354768
0xbeb5a42c
// -0.660901
0xbf2930cc
// -0.697272
0xbf32806a
// 0.185101
0x3e3d8b01
// -0.586564
0xbf162911
// 0.349033
0x3eb2b46c
// 0.155366
0x3e1f1844
// 0.581884
0x3f14f654
// -0.633862
0xbf2244c6
// 0.332930
0x3eaa75c7
// -0.177721
0xbe35fc62
// -0.236936
0xbe729f49
// -0.120847
0xbdf77ea9

@ -0,0 +1,514 @@
W
256
// -0.264623
0xbe877cb7
// 0.034588
0x3d0dac39
// 0.175286
0x3e337e12
// -0.631861
0xbf21c1a0
// -0.574504
0xbf1312b5
// 0.347633
0x3eb1fced
// 0.402842
0x3ece4154
// -0.022829
0xbcbb0414
// -0.150047
0xbe19a5cd
// -0.404786
0xbecf400c
// 0.020340
0x3ca69f40
// -0.241413
0xbe7734ee
// -0.802314
0xbf4d647a
// -0.569983
0xbf11ea70
// 0.620007
0x3f1eb8c0
// -0.287272
0xbe93155c
// 0.935288
0x3f6f6f03
// 0.723274
0x3f392877
// -0.052978
0xbd58ff1f
// -0.481344
0xbef672c0
// -0.887425
0xbf632e43
// 0.247306
0x3e7d3dad
// 0.269001
0x3e89ba75
// -0.076521
0xbd9cb714
// -0.218225
0xbe5f765a
// -0.373852
0xbebf6993
// 0.274616
0x3e8c9a79
// -0.076607
0xbd9ce42b
// -0.569947
0xbf11e807
// 0.467266
0x3eef3d8b
// -0.972312
0xbf78e971
// 0.442433
0x3ee286a0
// -1.220477
0xbf9c3897
// 0.250670
0x3e8057d8
// 0.850135
0x3f59a26d
// 0.853119
0x3f5a65fc
// 0.256354
0x3e8340dd
// 0.015043
0x3c767621
// -0.068666
0xbd8ca0e4
// -0.278140
0xbe8e6857
// -0.835237
0xbf55d21b
// 1.229127
0x3f9d540c
// 0.031172
0x3cff5be9
// 0.228146
0x3e699f1c
// -0.148960
0xbe1888f3
// 0.476899
0x3ef42c25
// 0.414853
0x3ed4679a
// 0.189127
0x3e41aa83
// 0.629820
0x3f213bde
// -0.064117
0xbd834fe2
// 0.083915
0x3dabdbe1
// -0.295589
0xbe975781
// 0.542721
0x3f0aefbe
// -0.578505
0xbf1418e6
// 0.958599
0x3f7566c1
// -0.606863
0xbf1b5b5a
// 0.591825
0x3f1781dc
// 0.109752
0x3de0c5d7
// 0.445900
0x3ee44cfd
// 0.150330
0x3e19f03b
// 0.218325
0x3e5f9085
// -0.435159
0xbedecd32
// -0.075384
0xbd9a62e9
// 0.438641
0x3ee0959a
// 0.461900
0x3eec7e25
// -0.138126
0xbe0d70f9
// -0.160171
0xbe2403fe
// -0.009998
0xbc23cf9c
// 0.896762
0x3f65922a
// 0.054997
0x3d614507
// -0.371826
0xbebe5fff
// -0.196658
0xbe4960ad
// 0.766355
0x3f442fd3
// 0.234232
0x3e6fda6c
// 0.048077
0x3d44ece4
// -0.237063
0xbe72c085
// 0.363346
0x3eba086f
// 0.427958
0x3edb1d5c
// 0.292858
0x3e95f16f
// -0.878350
0xbf60db8f
// 0.707927
0x3f353abc
// 0.072189
0x3d93d7e0
// -0.491785
0xbefbcb3b
// 0.318517
0x3ea314a0
// 0.303823
0x3e9b8ea0
// 0.173870
0x3e320aee
// 0.286256
0x3e92902f
// -0.279239
0xbe8ef867
// -0.212846
0xbe59f45a
// -0.512103
0xbf03192e
// 0.375250
0x3ec020c0
// -0.616890
0xbf1dec88
// -0.346972
0xbeb1a660
// 0.206574
0x3e538843
// -0.210607
0xbe57a960
// 0.197488
0x3e4a3a51
// -0.406810
0xbed0496d
// 0.074684
0x3d98f3e2
// 0.111392
0x3de42142
// -0.588288
0xbf169a0e
// -0.831173
0xbf54c7be
// -0.084569
0xbdad3250
// 0.251599
0x3e80d19c
// 0.305387
0x3e9c5bb1
// -0.104531
0xbdd61470
// 0.130947
0x3e061716
// -0.252372
0xbe8136d8
// 1.161818
0x3f94b670
// -0.285538
0xbe9231fe
// -0.115773
0xbded1a68
// -0.113600
0xbde8a74d
// 0.114157
0x3de9cb1b
// 0.812738
0x3f500fa0
// -0.342696
0xbeaf75cc
// -0.721908
0xbf38cef9
// -0.603909
0xbf1a99c2
// -0.017018
0xbc8b6877
// -0.137952
0xbe0d435e
// 0.239743
0x3e757f24
// -0.158293
0xbe2217a0
// -0.622495
0xbf1f5bd7
// -0.360098
0xbeb85ec7
// 0.169135
0x3e2d31c5
// -0.476237
0xbef3d562
// 0.520057
0x3f05227b
// -0.151093
0xbe1ab838
// 0.237455
0x3e732746
// -0.252791
0xbe816dce
// -0.188052
0xbe4090c3
// -0.506521
0xbf01ab62
// 0.345159
0x3eb0b8b8
// -0.240520
0xbe764af5
// -0.153700
0xbe1d6390
// 0.433767
0x3ede16bd
// 0.163231
0x3e272607
// -0.257051
0xbe839c36
// -0.059275
0xbd72ca22
// 0.140426
0x3e0fcbd5
// 0.386614
0x3ec5f250
// -0.101592
0xbdd00fa2
// -1.163409
0xbf94ea94
// -0.158172
0xbe21f7e8
// 0.202047
0x3e4ee589
// -0.171442
0xbe2f8e66
// -0.407294
0xbed088df
// -0.220600
0xbe61e4f7
// 0.082607
0x3da92da6
// -0.046619
0xbd3ef353
// -0.031377
0xbd0084ba
// -0.067008
0xbd893bc0
// -0.098988
0xbdcaba28
// -0.340896
0xbeae89e7
// 0.461602
0x3eec5718
// -1.142698
0xbf9243ed
// -0.664037
0xbf29fe56
// -1.139019
0xbf91cb62
// 0.094474
0x3dc17bd2
// 0.758139
0x3f421568
// -0.148109
0xbe17a9c1
// 0.675716
0x3f2cfbb8
// -0.161724
0xbe259afc
// 0.305733
0x3e9c8911
// 0.072175
0x3d93d08c
// -0.063862
0xbd82ca50
// -0.394232
0xbec9d8cc
// -0.071107
0xbd91a06e
// 0.585444
0x3f15dfb0
// -0.525641
0xbf069069
// 0.240705
0x3e767b7b
// 0.769215
0x3f44eb45
// 0.195059
0x3e47bd9b
// -0.285880
0xbe925ee2
// -0.233805
0xbe6f6a78
// -0.471031
0xbef12b00
// -1.344094
0xbfac0b46
// -0.175749
0xbe33f76f
// -0.129957
0xbe051367
// 0.249445
0x3e7f6e9e
// -0.082258
0xbda876e1
// -0.475917
0xbef3ab70
// 0.006238
0x3bcc6af3
// 0.641992
0x3f24599a
// 0.782912
0x3f486cee
// 0.075171
0x3d99f353
// -0.184002
0xbe3c6b19
// -0.425913
0xbeda114f
// 0.654888
0x3f27a6b5
// 0.003805
0x3b796072
// 0.197615
0x3e4a5b86
// 0.059154
0x3d724b68
// 0.264345
0x3e875838
// -0.416941
0xbed5795a
// -0.633103
0xbf22130a
// -0.005906
0xbbc186e8
// -0.159432
0xbe234225
// -0.263594
0xbe86f5bc
// 0.147811
0x3e175bc8
// -0.101769
0xbdd06c4b
// 0.654033
0x3f276eb9
// -0.386353
0xbec5d017
// 0.237504
0x3e73345b
// 0.395905
0x3ecab409
// -0.331155
0xbea98d30
// -0.588369
0xbf169f60
// 1.092822
0x3f8be197
// 0.019988
0x3ca3bdaf
// -0.380141
0xbec2a1ca
// -0.005916
0xbbc1d6e0
// 0.457683
0x3eea5565
// -0.359307
0xbeb7f70c
// 0.637760
0x3f234438
// 0.203318
0x3e5032a6
// 0.025148
0x3cce0261
// -0.069366
0xbd8e0fdb
// -0.374006
0xbebf7db6
// 0.325558
0x3ea6af82
// 0.069212
0x3d8dbf23
// 0.246603
0x3e7c8575
// 0.900551
0x3f668a8b
// -0.306098
0xbe9cb8f1
// -0.104893
0xbdd6d1e9
// 0.671873
0x3f2bffdd
// -0.208820
0xbe55d4f8
// 0.615752
0x3f1da1ec
// -0.691478
0xbf3104ba
// -1.028442
0xbf83a400
// -0.005539
0xbbb57e39
// -0.369022
0xbebcf069
// -0.228382
0xbe69dd03
// -0.172086
0xbe303755
// -0.330961
0xbea973ac
// 0.133635
0x3e08d7ab
// 0.367164
0x3ebbfced
// 0.654280
0x3f277ee6
// 0.625008
0x3f20007e
// 0.499379
0x3effae9e
// 0.031208
0x3cffa780
// 0.745609
0x3f3ee03a
// -0.538774
0xbf09ed1c
// -0.083589
0xbdab30f6
// 0.689810
0x3f30975b
// -0.064109
0xbd834bb8
// -0.152022
0xbe1baba7
// -0.512032
0xbf031488
// -0.581200
0xbf14c985
// -0.344612
0xbeb070f1
// 0.609758
0x3f1c191b
// -0.359443
0xbeb808f6
// 0.592527
0x3f17afdd
// 0.043718
0x3d3311ce
// 0.592013
0x3f178e29
// -0.627172
0xbf208e59
// 0.261743
0x3e860329
// 0.384005
0x3ec49c4d
// -0.508937
0xbf0249aa
// -0.491776
0xbefbca1b

@ -55,6 +55,7 @@ int testmain(const char *patterns)
// by a server running on a host.
#if defined(EMBEDDED)
Client::IORunner runner(&io,&mgr,Testing::kTestOnly);
//Client::IORunner runner(&io,&mgr,Testing::kTestAndDump);
#else
// Works also in embedded but slower since data is dumped
Client::IORunner runner(&io,&mgr,Testing::kTestAndDump);

@ -39,8 +39,14 @@ function(compilerSpecificCompileOptions PROJECTNAME ROOT)
target_compile_options(${PROJECTNAME} PUBLIC "-mthumb")
endif()
target_link_options(${PROJECTNAME} PUBLIC "-mcpu=${ARM_CPU}")
# Need to add other gcc config for other cortex-m cores
if (ARM_CPU STREQUAL "cortex-m55" )
target_compile_options(${PROJECTNAME} PUBLIC "-mfpu=fpv5-d16")
target_link_options(${PROJECTNAME} PUBLIC "-mfpu=fpv5-d16")
endif()
if (ARM_CPU STREQUAL "cortex-m33" )
target_compile_options(${PROJECTNAME} PUBLIC "-mfpu=fpv5-sp-d16")
target_link_options(${PROJECTNAME} PUBLIC "-mfpu=fpv5-sp-d16")

@ -59,6 +59,7 @@ if(IS_IN_TRY_COMPILE)
endif()
add_link_options("-Wl,--start-group")
#add_link_options("-mcpu=${ARM_CPU}")
# Where is the target environment
#SET(CMAKE_FIND_ROOT_PATH "${tools}")

Loading…
Cancel
Save