aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-08-18Fix: return value for GCC _write and _read is written/read chars21.08-rc321.08-rc221.08Davide Grohmann
When using ARMClang compiler the functions _sys_write and _sys_read should return the number of unprocessed characters, whilst when using GCC the functions _write and _read should return the number of processed (i.e., written or read) chars. The code was returning the unprocessed characters value in both cases (i.e., 0) making the calling code to exit early with error and stop further processing when using GCC. Hence no subsequent calls to write would be executed causing missing output on the console. For example, string truncation has been seen when printing on stderr. Note that the bug was not really visible when printing to stdout, but it was immediately exposed when using stderr. This was likely due to the fact that libc buffers the stdout output and flushes it only when encountering a new line char (\n), whilst no buffering is done on stderr. Indeed by printing whole buffers the problem was worked around and went unseen. Change-Id: I5a48d6a29441175b2a950716997332a8b9c34e10
2021-08-13Ensure same flags are used for both GCC and ARMClang21.08-rc1Davide Grohmann
Change-Id: Ib37930e7efb0663e9c39bb6c39af8cc62cf3f37c
2021-08-12small fixes to FreeRTOS app.Lior Dekel
Change-Id: Ib1e59fda457edc90ceb324f35252c3def451c751
2021-08-11Adding inference application for ThreadXLior Dekel
Change-Id: Icadb4ceb50997a31bafa2356bfa434568c056593
2021-08-10Adding FM 11.15 support to run_ctest scriptliodek01
Jira: NO-JIRA Change-Id: I5c31bc432d421ae7645474a24b0ce7a4be7cefb8
2021-07-01Increased heap and FreeRTOS stackKristofer Jonsson
Tensorflow lite micro has increased the size of the MicroProfiler. As a consequence the FreeRTOS application needs to increase the stack size allocate from the heap. Change-Id: I8e4df44767edaecee27d9571319ef72da5937a3b
2021-06-30Adding assembly compiler to toolchain filesliodek01
Change-Id: I4530ab1aa336ae4fc487745279f74ae4ebebe3d1
2021-06-30Support 'none' acceleratorKristofer Jonsson
Change-Id: Iada7cfaa42dc6f5706504ee78e975730048e0f3c
2021-06-28Building without NPUKristofer Jonsson
Support building applications for targets without a NPU. Change-Id: I04199b1c0444f23eadc6d4cf85195413dfd8bc97
2021-06-28Buildsystem restructuringKristofer Jonsson
- Allow linker file to be overriden - Disable Trustzone build for other targets than Corstone-300 - Make toolchain TARGET_CPU variable cached Change-Id: I98a15e1080e4bf49e029578888b1e4ce362bbab7
2021-06-22Add a requirements.txt to scripts folderJonny Svärd
Some scripts require external modules (from pip). Install using: python -m pip install -r requirements.txt NOTE: On some distributions python2 is still default, so to use python 3 it might be necessary to replace python on the above command line with python3 Update README.md to mention the python requirements. Change-Id: Ia7581c874570d92846095775f680238328f651b4
2021-06-15Using ref kernelsKristofer Jonsson
Tensorflow reference kernels are bit exact and should be used by the run_platform.py script to generate the expected OFM data. Change-Id: I90e688e753e5330aaaf9002abed23df0493ff99b
2021-06-09Add missing library dependencyKristofer Jonsson
Change-Id: Icfc30968f3d1bc0048a235eacec94b47097d662b
2021-06-08Remove hardcoded Ethos-U driver instanceJonny Svärd
Adjust to updated Ethos-U driver Change-Id: Ie374c29bec2baee4717634588b22f6db419ad9a3
2021-06-04Remove dependency on cppJonas Ohlsson
Remove dependency on cpp, and instead use the specified compiler to preprocess the linker scripts. Signed-off-by: Jonas Ohlsson <jonas.ohlsson@arm.com> Change-Id: I000082f8e90015b12f99ba3f616b6b3e07647873
2021-06-01Corstone-300 reduced SRAM sizeNir Ekhauz
Fix inconsistencies between the scatter file and linker script Jira: MLBEDSW-4596 Change-Id: I4d31fc89ef0d0371e1ba8758d60871674cf844a9
2021-05-27Add one eventRecordId per configured PMU event.21.05Jens Elofsson
Change-Id: I551ec9136d3ce9d89a066f6f63bb5fd9b5d39f80
2021-05-27Add ethosu_monitor example to baremetal application.21.05-rc3Jens Elofsson
Change-Id: Ided3ff5e2a5fc1f16e2fad0732f5464ccddbc96c
2021-05-26OptimizationsKristofer Jonsson
Setting NDEBUG for non debug builds. This will disabled the asserts used by the for example the Ethos-U driver. Disabling caches by default. Change-Id: I614edc09b99e9997af7e113c7565d64f273f3fa0
2021-05-24[Core Platform] Update and remove pmu "v2"-functionsAnton Moberg
NPU PMU interface currently have functions that have been stepped each time a compatibilty breaking changed has been introduced. Old entrypoints have been redefined with macro to use the latest version for backwards compatibility. This series of patches will remove any such functions and macro to unify the interface. Update: All PMU entrypoints to support updated interface Change-Id: I12113649cfbbe162f0fc66563868ec9df0382cbe
2021-05-19Add documentation for running on MPS3Per Åstrand
Change-Id: Ie5afef7bd07456e0fe2eb47c0ab6f979fc9aa5ea
2021-05-11Documenting startup and multi NPU21.05-rc2Kristofer Jonsson
Adding documentation and sequence diagrams for startup and multi NPU. Change-Id: I4a4a43e8bea089b6325f7d8285434017cbda25ec
2021-05-07Handle parallel buildsPer Åstrand
Change-Id: I142057dfe9429b6360fafcae4f9e1b4b8140f3d5
2021-05-05MLBEDSW-4228 Building on Windows21.05-rc1Jonas Ohlsson
Changes to facilitate building on Windows systems. Signed-off-by: Jonas Ohlsson <jonas.ohlsson@arm.com> Change-Id: Ib95bd89fe476790333bafccc3f6fa402b6569166
2021-05-04[Core Platform] Update to support removal of "_v"-functionsAnton Moberg
NPU driver interface currently have functions which have been stepped each time a compatibilty breaking changed has been introduced. Old entrypoints have been redefined with macro to use the latest version for backwards compatibility. This series of patches will remove any such functions and macro to unify the interface. Update: All driver entrypoints to support updated interface Change-Id: Ibe5fa7b2ac909eceb16a6879d4eaf9d0d7e36211
2021-05-04Output .map files for executable targetsPer Åstrand
Generate the map file for each executable target added with the helper function ethosu_add_executable. Change-Id: Ib8b26508f7c439c8cd12b90061cc42eb771d9fd5
2021-05-04Generate binaries for all executablesPer Åstrand
Add helper to generate binaries for all targets added with ethosu_add_executable in order to ease development on fpga. Change-Id: I23df4f8aa1fd2d8a1e633d337b9f09ad7fe75774
2021-05-04Add python helper for creating binaries from elfPer Åstrand
In order to ease the work with both FVP and FPGA, create a script that handles sorting out the binary creation. Change-Id: I19bc4b4d659c54b4569e6a714c7281bec4a81310
2021-05-04Update ld script for corstone-300Per Åstrand
Name memories as they are in reference manual and consolidate the ddr objects to single section to ease the creation of the binary. The program headers are also updated to use the same layout as using armclang. Change-Id: Ib98cad45d0679c0d44226c46c2398d02f771ea9f
2021-04-29Add script to simplify testing networks on modelJonathan Strandberg
The script will build the platform, optimize the network through vela, run it on the model and present relevant statistics from the run. Change-Id: I6bf7d77caa68e64c52f7b523e6b79af9271b6500
2021-04-27Add missing NS address' to S MPU config tableJonny Svärd
Note that the MPU is split between S and NS. Code running in NS (non-secure) state will not have access to S regions, however it will have access to NS regions unless the MPU_NS is configured (or other security mechanisms like SAU/IDAU limits access). The MPU for NS is not enabled or configured in this example code. Change-Id: I6b07bda25e4dbb23e8c2afdfa01d82ca5611f21a
2021-04-22Enable MPU and CPU cache for Corstone-300Jonny Svärd
- Enable CPU instruction- and data cache by default. - Add a CMake option to turn CPU cache on/off. - Add basic MPU configuration for memory areas. Make the code segment RO (NS address' are reachable from secure state, hence MPU config entries for both S and NS address of ITCM). - Target latest NPU API version Change-Id: Ie9bf2f02e5ad534375d146804fdc66b9f2f6770f Change-Id: I9def430d1e61d18e521798db4f48ed0a8c58380e
2021-04-21Fix formattingAnton Moberg
Fixed code formatting Change-Id: I12df8da14a7100706f20ffb084ca8477928d0005
2021-04-20Add support for Corstone-300 11.14.24 FVPJonny Svärd
Change-Id: Ie97250f03f9c1f7d3603ecfba370049bf12f7c90
2021-04-09Move FreeRTOS model data to separate folderAnton Moberg
Move model data used by the FreeRTOS application to separate folder to allow for changing model easier by chaning the compile definition set in CMakeLists.txt just after ethosu_add_executable_test(...) Change-Id: I81d801c52e721f8ca7ad83892f9b68e82aee8188
2021-04-09Multi NPU freertos exampleAnton Moberg
Modified freertos.cpp to the support multi NPUs API. Spawn NUM_INFERENCE_TASKS inference processing tasks (Reserves, locks, and runs inference on an available NPU driver. Usually 1 per NPU, but not required) Spawn NUM_JOB_TASKS job creating/recieving tasks (Creates NUM_JOBS_PER_TASK jobs, sends them to inference job queue, and recieves response once finished) Added: Mutex & Semaphore interfaces. Overrides weakly linked symbols in driver. Change-Id: Id187c6c9b43b988b1fdd560fdf3d57bd4b30b79c
2021-03-31Update license headersAnton Moberg
Update all license headers to the correct years. Change-Id: I18881cbceabe26066d69d8535bb3cb969cbaeba1
2021-03-26Driver unit testsKristofer Jonsson
Add driver unit tests that runs simple command streams directly on top of the NPU driver. Change-Id: I3fcce2a2bfbd458d14186b8fd13ba47174f49562
2021-03-24Use new timing adapter driver from core_softwareJonny Svärd
Add basic skeleton to initialize timing adapters. See core_software/drivers/timing_adapter/include/timing_adapter.h for description of settings and API. Change-Id: I0884f8efc5735b1a837d45e0bb7c6612d329ad58
2021-03-18Smaller networks - keyword_spotting_ds_dnn_large_clustered_int8Anton Moberg
Added: Baremetal application 'keyword_spotting_ds_dnn_large_clustered_int8' as and executable test. Run with ctest -R keyword_spotting_ds_dnn_large_clustered_int8 Model taken from ML-zoo, run through vela, and hexdumped to C header format. Change-Id: If1cee9f45bf9886eace299a378523b81beee4798
2021-03-18Smaller networks - keyword_spotting_dnn_medium_int8Anton Moberg
Added: Baremetal application 'keyword_spotting_dnn_medium_int8' as and executable test. Run with ctest -R keyword_spotting_dnn_medium_int8 Model taken from ML-zoo, run through vela, and hexdumped to C header format. Change-Id: Iba97a2c89277131605e233f0c9241581ea178755
2021-03-18Smaller networks - keyword_spotting_cnn_small_int8Anton Moberg
Added: Baremetal folder for baremetal applications Added: Baremetal application 'keyword_spotting_cnn_small_int8' as an executable test. Run with ctest -R keyword_spotting_cnn_small_int8 Model taken from ML-zoo, run through vela, and hexdumped to C header format. Change-Id: I053d88a4319cb58020027d6007e83fd519a2af6e
2021-03-10Hello world applicationKristofer Jonsson
Adding hello world application that is useful when porting the stack to a new target platform. Change-Id: I28ba96d9fac1489d73b84cb7940d05cf9860e4ed
2021-03-02Rename .bss.NoInit section to .bss.tensor_arenaJonny Svärd
Change-Id: I660cd5d2bc73eaf589598c4f0570f5e9293de28d
2021-02-25Adding CTest script21.02Kristofer Jonsson
Adding script to run CTest on the Corstone-300 FVP. The script will detect which version of the FVP that is used and pass the correct command line arguments. Updating README with instructions how to run tests, either using CTest or calling the FVP directly. Update FreeRTOS example to exit with the status of the inference. Minor adjustments are needed to the output vectors. Change-Id: I8a1a740b0dec2ce35d95e5c5d91f4b57a2c8e1fa
2021-02-24Use mobilenet_v2 for freertos test applicationPer Åstrand
Replace the CPU-only network with mobilenet_v2_1.0_224. The header files in this commit are the same as the model data in the trustzone application, see the README.md in applications/trustzone_inference for details on how to generate them from source on Arm ML-Zoo repository on github. Change-Id: I8d3cfd6313fd5d98880cf1b24511208ca12faa05
2021-02-24Use ctest for running the freertos applicationPer Åstrand
Change-Id: Iff207d9bd8f8406c645b087560212fb0aabe82f4
2021-02-24Support released versions of FVPsPer Åstrand
Change-Id: Ia2ca0593e65bdb570c53a16cf7706d876e649e18
2021-02-23Trademark informationKristofer Jonsson
Updating readme files with trademark information. Change-Id: I9e20a0163c65119fd29826bf088c5f62d1e1c3b3
2021-02-22Move queue to global memoryPer Åstrand
The FreeRTOS port resets the stack when the scheduler starts. Move the queue to global memory for it to not be overwritten. Change-Id: I98f2360a14a0f74a65353694c6e2f60d37461ecf