tree 1140f20f20ce4fb1ee3173265ad34db5692d153f
parent 6a84f2c1da0f8d9fd1946caa55a336ebacfeb392
author RichardBarry <3073890+RichardBarry@users.noreply.github.com> 1623698261 -0700
committer GitHub <noreply@github.com> 1623698261 -0700
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJgx6tVCRBK7hj4Ov3rIwAA88wIAIfSZs7uh9N4gRnKKqYF8UYz
 HTmxGPBvBejQxcSezgrEiGKaDB3dVYBgWtZglfviFoIYk7r1W56uKdHs/3BjDTFe
 uqgU19e5GwyE0OPrT19Y7KIOPDQDdJh3VbOREAOPJ1aY1joYzFgVTD4Cdw7penYJ
 MbHiXQW2rqWLnCFDUvxeu0NeRhRFEIABvNTXQ74+x8aHgLJSvtxMNn1GftVl6yWl
 RgFnGLBOny6YFFQECJeKydMUNJunCIFxdmkUy9sXolNNv+iucy9F/eYEaqzxieRg
 faxqe7UcnKFcvndv5m7O91SY87jFb3aqE6hj264tmLgGUG3r/0qY8An1bSuARtw=
 =5i9R
 -----END PGP SIGNATURE-----
 

Make the type used to hold run-time counter values configurable (#350)

* Introduce configRUN_TIME_COUNTER_TYPE which enables developers to define the type used to hold run time statistic counters.  Defaults to uint32_t for backward compatibility.  #define configRUN_TIME_COUNTER_TYPE to a type (for example, uint64_t) in FreeRTOSConfig.h to override the default.

Introduce ulTaskGetIdleRunTimePercent() to complement the pre-existing ulTaskGetIdleRunTimeCounter().  Whereas the pre-existing function returns the raw run time counter value, the new function returns the percentage of the entire run time consumed by the idle task.  Note the amount of idle time is only a good measure of the slack time in a system if there are no other tasks executing at the idle priority, tickless
idle is not used, and configIDLE_SHOULD_YIELD is set to 0.

* Add ultaskgetidleruntimepercent to lexicon.txt.

* Update History file.
Add the MPU version of ulTaskGetIdleRunTimePercent().

* Update include/FreeRTOS.h to correct comment as per aggarg@ suggestion.
* Fix alignment in mpu_wrappers.h.
Commit changes to mpu_prototypes.h which were missed from the original commit.
