/* MISRA checks are not performed in header files marked as libraries or vendor-provided files or belonging to other subsystems.*/ -e686 /* Silencing warning on -elib(*) */ -elib(*) /* No checks on library files. */ +libclass(angle,ansi) +libh(core_cm4.h) +libh(stm32*.h) +libh(*_lld.h) /* Reinforcing type checking for some critical types even if not required by MISRA.*/ -strong(AJX, systime_t) -strong(AJX, rtcnt_t) -strong(AJX, rttime_t) -strong(AJX, syssts_t) -strong(AJX, msg_t) -strong(AJX, tmode_t) -strong(AJX, tstate_t) -strong(AJX, trefs_t) -strong(AJX, tslices_t) -strong(AJX, tprio_t) -strong(AJX, cnt_t) -strong(AJX, ucnt_t) -strong(AJX, eventid_t) -strong(AJX, eventmask_t) -strong(AJX, eventflags_t) /* Permitting anonymous unions.*/ +fan /* Silencing common non-MISRA info generated by PCLint in -w3 mode. All of them have been controlled. Other infos have been fixed in the code. Remove temporarily the following -e in order to perform extra code quality checks.*/ -e526 -e537 -e552 -e611 -e613 -e714 -e716 -e717 -e749 -e750 -e754 -e757 -e758 -e759 -e766 -e768 -e769 -e773 -e778 -e793 -e826 -e830 -e835 -e845 /* Removing *advisory* directives and rules that would negatively impact code readability or not avoidable.*/ -e970 /* Dir-4.6 */ -e9045 /* Dir-4.8 */ -e9026 /* Dir-4.9 */ -e756 /* Rule-2.3 */ -e9058 /* Rule-2.4 */ -e755 /* Rule-2.5 */ -e9003 /* Rule-8.9 */ -e9067 /* Rule-8.11 */ -e818 /* Rule 8.13 */ -e9078 /* Rule-11.4 */ -e9079 /* Rule-11.5 */ -e9049 /* Rule-13.3 */ -e9084 /* Rule-13.4 */ -e801 /* Rule-15.1 */ -e9011 /* Rule-15.4 */ -e904 /* Rule-15.5 */ -e9044 /* Rule-17.8 */ -e9016 /* Rule-18.4 */ -e844 -e954 /* Rule-18.13 */ -e9018 /* Rule-19.2 */ -e9024 /* Rule-20.10 */ /* Waiver Directive 2.1, Rule 1.1, Rule 1.2, assembler is allowed in some modules.*/ -e950 /* Waiver Directive 4.10, PCLint is confused by the guard used in the CMSIS header files, the guard is present, suppressing the noise.*/ -e451 /* Waiver Rule 2.2, PCLint marks as pure functions that contain just asm code, this does not mean that those functions do nothing.*/ -e522 /* Waiver Rule 3.1, the sequence "//" is mandated by standard license headers included on top of all source files. The sequence is part of the license URL and cannot be removed.*/ -e9059 /* Waiver Rule 8.4, this rule is disabled for the main() function only because it, of course, does not have nor requires a prior declaration.*/ -esym(9075, main) /* Waiver Rule 8.7, the static analyzer has no visibility of functions called from asm modules.*/ -e765 /* Waiver Rule 11.1, casts of function pointers are required by system design.*/ -e9074 /* Waiver Rule 11.3, casts among different types are required by system design.*/ -e740 /* Wrongly marked as 1.3 in PCLint 9.00L.*/ -e9087 /* Waiver Rule 11.6, cast from integer to pointer is very commonly used when accessing peripherals where the numeric address of the registers block is cast to a structure pointer.*/ -e923 /* Waiver Rule 16.1, missing break into case. It is a common occurrence and thoroughly checked.*/ /* Waiver Rule 16.3, missing break into case. It is a common occurrence and thoroughly checked.*/ -e9090 -e9077 -e9042 -e616 -e825 /* Waiver Rule 18.2, pointers arithmetic is required by system design and deemed safe.*/ /* Waiver Rule 18.3, comparisons among pointers is required by system design and deemed safe.*/ -e946 -e947 /* Waiver Rule 21.1, this is an operating system, its identifiers are equivalent in importance to compiler symbols.*/ -e9071