Open-CMSIS-SVD
System View Description
|
SVDConv is a command-line utility to validate CMSIS-SVD files and to generate CMSIS-compliant device header files. SVDConv is distributed with the ARM::CMSIS Pack (in the CMSIS\Utilities directory) together with the CMSIS-SVD.xsd schema file. SVDConv is available for Windows and Linux operating systems.
SVDConv performs the following operations:
SVDConv is invoked form the command line. The general command format is:
<options> | Short Name | Description |
---|---|---|
none | Validation | Perform a validation check of the SVD file. Errors and warnings are printed on screen. |
-b | Log File | Specify the log file name for writing messages. Default: screen. |
-o | Output Path | Specify an output path for the generated device header file or log file. Default: current directory. |
--generate=header | Generate Device Header File | Generates the device header file. The name of the generated file is derived from the value of the tag <devicename> in the CMSIS-SVD file. Refer to device. |
--generate=partition | Generate Partition file for Cortex-M Security Extensions (Armv8-M) | Generates the device partition file. The name of the generated file is composed of partition_ and the value of the device <name> (for example, partition_CMSDK_ARMv8MBL.h). Refer to /device element. The content of the file uses Configuration Wizard annotations and is derived from the SAU-specific information of the /device/cpu/sauRegionsConfig element and the interrupts specified in the /device/peripherals element. |
--fields=enum | Bit-field Enums | Generates enum lists for each field value description contained in the CMSIS-SVD input file. Must be used in combination with --generate=header. |
--fields=macro | Bit-field Macros | Generates position and mask C-Macros for each field description contained in the CMSIS-SVD input file. Must be used in combination with --generate=header. |
--fields=struct | Bit-field Structs | Generates bit fields for each field description contained in the CMSIS-SVD input file. Must be used in combination with --generate=header. |
--fields=struct-ansic | ANSI Bit-field Structs | Generates MISRA-compliant structures for each bitfield. The generated code is not CMSIS-compliant! Must be used in combination with --generate=header. |
--strict | Strict error checking | RECOMMENDED! Applies strict error checking and generates a lot more messages. |
SVDConv returns the following codes:
Code | Description | Action |
---|---|---|
0 | OK | No action required. Validation and conversion performed without errors. |
1 | WARNINGS | Warnings should be checked an possibly removed. The header file is created and could be used. |
2 | ERRORS | Errors in the SVD description file. Important elements are missing and must be corrected. |
3 | Error in command line | Check and correct the command line arguments. |
Examples
MVCM3110.svd(1688) : info <description> missing for value '2 : MODE2' MVCM3110.svd(1692) : info <description> missing for value '3 : MODE3' MVCM3110.svd(1696) : info <description> missing for value '4 : MODE4' Area of improvements: * Description contains 267 <fields> defined without associated <enumeratedValues> Found 0 Errors and 1 Warnings Return Code: 1 (WARNINGS)
The following table shows the errors and warnings issued by svdconv.
Message Number | Type | Message Text | Details/Action |
---|---|---|---|
M020 | TEXT | SVD_STRING_OPTIONS | Displays programm help. |
M021 | TEXT | 'DESCR' 'VER' 'COPYRIGHT' | Displays module name 'DESCR', version 'VER' and copyright information 'COPYRIGHT'. |
M022 | TEXT | Found 'ERR' Error(s) and 'WARN' Warning(s). | Displays the number of errors/warnings. |
M023 | TEXT | Phase 'CHECK' | Information about the check phase. |
M024 | TEXT | Arguments: 'OPTS' | Specify arguments. |
Message Number | Type | Message Text | Details/Action |
---|---|---|---|
M040 | Info | 'NAME': 'TIME' ms. Passed | |
M041 | Info | Overall time: 'TIME' ms. | |
M050 | Info | Current Working Directory: 'PATH' | |
M051 | Info | Reading SVD File: 'PATH' | |
M061 | Info | Checking SVD Description |
Message Number | Type | Message Text | Action |
---|---|---|---|
M101 | ERROR | Unknown error! | Please contact support. |
M102 | ERROR | MFC initialization failed | Please contact support. |
M103 | ERROR | Internal Error: 'REF' | Please contact support. |
M104 | CRITICAL | 'MSG' | Please contact support. |
M105 | ERROR | Cannot add Register to group sorter: 'NAME' | |
M106 | ERROR | Command 'NAME' failed: 'NUM': 'MSG' | |
M107 | ERROR | Lost xml file stream. | Check SVD file. |
M108 | ERROR | SfrDis not supported.Disassembly not supported. | |
M109 | ERROR | Cannot find 'NAME' | Check specified file. |
M111 | PROGRESS | 'NAME' failed | Check specified file. |
M120 | ERROR | Invalid arguments! | Provide a list of valid arguments. |
M121 | ERROR | File not found 'NAME' Check specified file. | |
M122 | ERROR | Name of command file should follow '@' | Check specified command. |
M123 | ERROR | File not found: 'PATH'! | Check speficied path. |
M124 | ERROR | Cannot execute SfrCC2: 'PATH'!"</td><td>Check path to SfrCC2.</td></tr> <tr><td>M125</td> <td>WARNING</td><td>SfrCC2 report: \n \em 'MSG' \n SfrCC2 report end.</td><td></td></tr> <tr><td>M126</td> <td>WARNING</td><td>SfrDis: \em 'MSG'</td><td></td></tr> <tr><td>M127</td> <td>ERROR</td><td>SfrCC2 reports errors!</td><td>Check SVD file.</td></tr> <tr><td>M128</td> <td>WARNING</td><td>SfrCC2 reports warnings!</td><td>Check SVD file.</td></tr> <tr><td>M129</td> <td>ERROR</td><td>Option unknown: \em 'OPT'</td><td>Check given option \em 'OPT'.</td></tr> <tr><td>M130</td> <td>ERROR</td><td>Cannot create file \em 'NAME'</td><td>Check user rights.</td></tr> <tr><td>M132</td> <td>ERROR</td><td>SfrCC2 report: \n \em 'MSG' \n SfrCC2 report end." |
Message Number | Type | Message Text | Action |
---|---|---|---|
M201 | ERROR | Tag <'TAG'> unknown or not allowed on this level."</td><td>Check tag</td></tr> <tr><td>M202</td> <td>ERROR</td><td>Parse error: \<\em 'TAG'> = \em 'VALUE'</td><td>Check tag/value.</td></tr> <tr><td>M203</td> <td>ERROR</td><td>Value already set: \<\em 'TAG'> = \em 'VALUE'</td><td>Check tag/value.</td></tr> <tr><td>M204</td> <td>ERROR</td><td>Parse Error: \em 'VALUE'</td><td>Check value.</td></tr> <tr><td>M205</td> <td>WARNING</td><td>Tag \<\em 'TAG'> empty</td><td>Assign value to tag.</td></tr> <tr><td>M206</td> <td>ERROR</td><td>DerivedFrom not found: \em 'NAME'</td><td>Check derivate.</td></tr> <tr><td>M207</td> <td>ERROR</td><td>Expression marker found but no \<dim> specified: \em 'NAME'</td><td>Specify dimension.</td></tr> <tr><td>M208</td> <td>ERROR</td><td>Ignoring \<dimIndex> because specified \<name> requires Array generation.</td><td>Generate an array.</td></tr> <tr><td>M209</td> <td>WARNING</td><td>CPU section not set. This is required for CMSIS Headerfile generation and debug support.</td><td>Add CPU section.</td></tr> <tr><td>M210</td> <td>WARNING</td><td>Use new Format CMSIS-SVD >= V1.1 and add \<CPU\> Section.</td><td>Update schema and add CPU section.</td></tr> <tr><td>M211</td> <td>ERROR</td><td>Ignoring \em 'LEVEL' \em 'NAME' (see previous message)</td><td></td></tr> <tr><td>M212</td> <td>ERROR</td><td>Address Block \<usage> parse error: \em 'NAME'</td><td>Correct address block.</td></tr> <tr><td>M213</td> <td>ERROR</td><td>Expression for \em 'NAME' incomplete, <\em 'TAG'> missing.</td><td>Add tag.</td></tr> <tr><td>M214</td> <td>ERROR</td><td>Peripheral \em 'NAME' \<dim> single-instantiation is not supported (use Array instead).</td><td>Correct Reg%s to Reg[%s].</td></tr> <tr><td>M215</td> <td>WARNING</td><td>Size of \<dim> is only one element for \em 'NAME', is this intended?</td><td>Check single element.</td></tr> <tr><td>M216</td> <td>WARNING</td><td>Unsupported character found in \em 'NAME' : \em 'HEX'.</td><td>Correct name.</td></tr> <tr><td>M217</td> <td>WARNING</td><td>Forbidden Trigraph '??%CHAR%' found in \em 'NAME'.</td><td></td></tr> <tr><td>M218</td> <td>WARNING</td><td>Unsupported ESC sequence found in \em 'NAME' : \em 'CHAR'.</td><td>Correct escape sequence.</td></tr> <tr><td>M219</td> <td>ERROR</td><td>C Code generation error: \em 'MSG'</td><td></td></tr> <tr><td>M220</td> <td>WARNING</td><td>C Code generation warning: \em 'MSG'</td><td></td></tr> <tr><td>M221</td> <td>WARNING</td><td>Input filename must end with .svd: \em 'NAME'</td><td>Correct input filename extension.</td></tr> <tr><td>M222</td> <td>WARNING</td><td>Input filename has no extension: \em 'NAME'</td><td>Correct input filename extension.</td></tr> <tr><td>M223</td> <td>ERROR</td><td>Input File Name \em 'INFILE' does not match the tag \<name> in the \<device> section: \em 'NAME%'</td><td>Correct the MCU name.</td></tr> <tr><td>M224</td> <td>WARNING</td><td>Deprecated: \em 'NAME' Use \em 'NAME2' instead</td><td>Update SVD file.</td></tr> <tr><td>M225</td> <td>ERROR</td><td>Upper/lower case error: \em 'NAME', should be \em 'NAME2'" | Update SVD file. |
M226 | ERROR | SFD Code generation error: 'MSG' | |
M227 | WARNING | SFD Code generation warning: 'MSG' | |
M228 | ERROR | Enumerated Value Container: Only one Item allowed on this Level! | Remove additional items. |
M229 | ERROR | Register 'NAME' is not an array, <dimArrayIndex> is not applicable | Correct SVD. |
M230 | ERROR | Value 'NAME':'NUM' out of Range for 'LEVEL' 'NAME2'['NUM2']. | Correct SVD. |
M231 | ERROR | Value <isDefault> not allowed for 'LEVEL'. | Correct SVD. |
M232 | ERROR | Tag <'TAG'> name 'NAME' must not have specifier 'CHAR'. Ignoring entry."</td><td>Correct SVD.</td></tr> <tr><td>M233</td> <td>ERROR</td><td>Parse error: \<\em 'TAG'> = \em 'VALUE'</td><td>Correct SVD.</td></tr> <tr><td>M234</td> <td>ERROR</td><td>No valid items found for \em 'LEVEL' \em 'NAME'</td><td>Correct SVD.</td></tr> <tr><td>M235</td> <td>ERROR</td><td>\em 'LEVEL' \em 'NAME' cannot be an array.</td><td>Correct SVD.</td></tr> <tr><td>M236</td> <td>ERROR</td><td>Expression for \<\em 'TAG'> \em 'NAME' not allowed.</td><td>Correct SVD.</td></tr> <tr><td>M237</td> <td>ERROR</td><td>Nameless \em 'LEVEL' must have \<\em 'TAG'>.</td><td>Correct SVD.</td></tr> <tr><td>M238</td> <td>ERROR</td><td>\em 'LEVEL' must not have \<\em 'TAG'>." | Correct SVD. |
M239 | ERROR | Dimed 'LEVEL' 'NAME' must have an expression. | Correct SVD. |
M240 | ERROR | Tag <'TAG'> unknown or not allowed on 'LEVEL2':'LEVEL'. | Correct SVD. |
M241 | ERROR | Parse Error: 'VALUE' invalid for Array generation | Correct SVD. |
M242 | WARNING | 'LEVEL' 'NAME' <dimArrayIndex> found, but no <dim> | Correct SVD. |
M243 | WARNING | 'LEVEL' 'NAME' <dimArrayIndex> found, but <dim> does not describe an array | Correct SVD. |
Message Number | Type | Message Text | Action |
---|---|---|---|
M301 | ERROR | Interrupt number 'NUM' : 'NAME' already defined: 'NAME2' 'LINE' | |
M302 | ERROR | Size of Register 'NAME':'NUM' must be 8, 16 or 32 Bits | |
M303 | WARNING | Register name 'NAME' is prefixed with Peripheral name 'NAME2' | RegName = USART_CR ==> USART->USART_CR |
M304 | WARNING | Interrupt number overwrite: 'NUM' : 'NAME' 'LINE' | |
M305 | ERROR | Name not C compliant: 'NAME' : 'HEX', replaced by '_' | |
M306 | ERROR | Schema Version not set for <device>. | |
M307 | ERROR | Name is equal to Value: 'NAME' | |
M308 | ERROR | Number of <dimIndex> Elements 'NUM' is different to number of <dim> instances 'NUM2' | |
M309 | ERROR | Field 'NAME': Offset error: 'NUM' | |
M310 | ERROR | Field 'NAME': BitWidth error: 'NUM' | |
M311 | ERROR | Field 'NAME': Calculation: MSB or LSB == -1 | |
M312 | ERROR | Address Block missing for Peripheral 'NAME' | |
M313 | ERROR | Field 'NAME': LSB > MSB: BitWith calculates to 'NUM' | |
M314 | ERROR | Address Block: <offset> or <size> not set. | |
M315 | ERROR | Address Block: <size> is zero. | |
M316 | ERROR | 'LEVEL' <name> not set. | |
M317 | WARNING | 'LEVEL' <description> not set. | |
M318 | WARNING | 'LEVEL' 'NAME' <'TAG'> is equal to <name> | |
M319 | WARNING | 'LEVEL' <'TAG'> 'NAME' ends with newline, is this intended? | |
M320 | WARNING | 'LEVEL' <description> 'NAME' is not very descriptive | |
M321 | WARNING | 'LEVEL' <'ITEM'> 'NAME' starts with '_', is this intended? | |
M322 | ERROR | 'LEVEL' 'ITEM' 'NAME' is meaningless text. Deleted. | |
M323 | WARNING | 'LEVEL' <'ITEM'> 'NAME' contains text 'TEXT' | |
M324 | ERROR | Field 'NAME' 'BITRANGE' does not fit into Register 'NAME2':'NUM' 'LINE' | |
M325 | ERROR | CPU Revision is not set"</td><td></td></tr> <tr><td>M326</td> <td>ERROR</td><td>Endianess is not set, using default (little)</td><td></td></tr> <tr><td>M327</td> <td>ERROR</td><td>NVIC Prio Bits not set or wrong value, must be 2..8. Using default (4)</td><td></td></tr> <tr><td>M328</td> <td>WARNING</td><td>\em 'LEVEL' \em 'NAME' has no Registers, ignoring \em 'LEVEL'.</td><td></td></tr> <tr><td>M329</td> <td>ERROR</td><td>CPU Type is not set, using default (Cortex-M3)</td><td></td></tr> <tr><td>M330</td> <td>ERROR</td><td>Interrupt \em 'NAME' Number not set.</td><td></td></tr> <tr><td>M331</td> <td>ERROR</td><td>Interrupt \em 'NAME' Number \em 'NUM' greater 239.</td><td></td></tr> <tr><td>M332</td> <td>WARNING</td><td>\em 'LEVEL' \em 'NAME' has only one Register.</td><td></td></tr> <tr><td>M333</td> <td>ERROR</td><td>Duplicate \<enumeratedValue> \em 'NUM': \em 'NAME' (\em 'USAGE'), already used by \em 'NAME2' (\em 'USAGE2') \em 'LINE'</td><td></td></tr> <tr><td>M334</td> <td>WARNING</td><td>\em 'LEVEL' \<\em 'ITEM'> \em 'NAME' is very long, use \<description> and a shorter \<name></td><td></td></tr> <tr><td>M335</td> <td>ERROR</td><td>Value \em 'NAME':\em 'NUM' does not fit into field \em 'NAME2' \em 'BITRANGE'.</td><td></td></tr> <tr><td>M336</td> <td>ERROR</td><td>\em 'LEVEL' \em 'NAME' already defined \em 'LINE'</td><td></td></tr> <tr><td>M337</td> <td>ERROR</td><td>\em 'LEVEL' \em 'NAME' already defined \em 'LINE'</td><td></td></tr> <tr><td>M338</td> <td>ERROR</td><td>Field \em 'NAME' \em 'BITRANGE' (\em 'ACCESS') overlaps \em 'NAME2' \em 'BITRANGE2' (\em 'ACCESS2') \em 'LINE'</td><td></td></tr> <tr><td>M339</td> <td>ERROR</td><td>Register \em 'NAME' (\em 'ACCESS') (\@\em 'ADDRSIZE') has same address or overlaps \em 'NAME2' (\em 'ACCESS2') (\@\em 'ADDRSIZE2') \em 'LINE'</td><td></td></tr> <tr><td>M340</td> <td>ERROR</td><td>No Devices found.</td><td></td></tr> <tr><td>M341</td> <td>ERROR</td><td>More than one devices found, only one is allowed per SVD File.</td><td></td></tr> <tr><td>M342</td> <td>ERROR</td><td>Dim-extended \em 'LEVEL' \em 'NAME' must not have \<headerStructName></td><td></td></tr> <tr><td>M343</td> <td>ERROR</td><td>\em 'LEVEL' \em 'NAME' (\@\em 'ADDR') has same address as \em 'NAME2' \em 'LINE'</td><td></td></tr> <tr><td>M344</td> <td>ERROR</td><td>Register \em 'NAME' (\@\em 'ADDRSIZE') is outside or does not fit any \<addressBlock> specified for Peripheral \em 'NAME2' \n \em 'TEXT'</td><td></td></tr> <tr><td>M345</td> <td>ERROR</td><td>Field \em 'NAME' \em 'BITRANGE' does not fit into Register \em 'NAME2':\em 'NUM'</td><td></td></tr> <tr><td>M346</td> <td>WARNING</td><td>Register \em 'NAME' (\@\em 'ADDR') offset is equal or is greater than it's Peripheral base address \em 'NAME2' (\@\em 'ADDR2'), is this intended?</td><td></td></tr> <tr><td>M347</td> <td>WARNING</td><td>Field \em 'NAME' (width \< 6Bit) without any \<enumeratedValue> found.</td><td></td></tr> <tr><td>M348</td> <td>ERROR</td><td>Alternate \em 'LEVEL' \em 'NAME' does not exist at \em 'LEVEL' address (\@\em 'ADDR')</td><td></td></tr> <tr><td>M349</td> <td>ERROR</td><td>Alternate \em 'LEVEL' \em 'NAME' is equal to \em 'LEVEL' name \em 'NAME2'</td><td></td></tr> <tr><td>M350</td> <td>WARNING</td><td>Peripheral \em 'NAME' (\@\em 'ADDR') is not 4Byte-aligned.</td><td></td></tr> <tr><td>M351</td> <td>WARNING</td><td>Peripheral \em 'TYPE' \em 'NAME' is equal to Peripheral name.</td><td></td></tr> <tr><td>M352</td> <td>WARNING</td><td>AddressBlock of Peripheral \em 'NAME' (\@\em 'ADDR') \em 'TEXT' overlaps \em 'NAME2' (\@\em 'ADDR2') \em 'TEXT2' \em 'LINE'</td><td></td></tr> <tr><td>M353</td> <td>WARNING</td><td>Peripheral group name \em 'NAME' should not end with '_'</td><td></td></tr> <tr><td>M354</td> <td>ERROR</td><td>Interrupt '\em 'NUM':\em 'NAME' specifies a Core Interrupt. Core Interrupts must not be defined, they are set through \<cpu>\<name>.</td><td></td></tr> <tr><td>M355</td> <td>ERROR</td><td>No Interrupts found on pos. 0..15. External (Vendor-)Interrupts possibly defined on position 16+. External Interrupts must start on position 0</td><td></td></tr> <tr><td>M356</td> <td>WARNING</td><td>No Interrupt definitions found.</td><td></td></tr> <tr><td>M357</td> <td>ERROR</td><td>Core Interrupts found. Interrupt Numbers are wrong. Internal Interrupts must not be described, External Interrupts must start at 0.</td><td></td></tr> <tr><td>M358</td> <td>ERROR</td><td>AddressBlock of Peripheral \em 'NAME' \em 'TEXT' overlaps AddressBlock \em 'TEXT2' in same peripheral \em 'LINE'</td><td></td></tr> <tr><td>M359</td> <td>ERROR</td><td>Address Block: \<usage> not set.</td><td></td></tr> <tr><td>M360</td> <td>ERROR</td><td>Address Block: found \<\em 'TAG'> (\em 'HEXNUM') > \em 'HEXNUM2'.</td><td></td></tr> <tr><td>M361</td> <td>ERROR</td><td>\em 'LEVEL' \em 'ITEM' \em 'NAME': 'RESERVED' items must not be defined.</td><td></td></tr> <tr><td>M362</td> <td>WARNING</td><td>\em 'LEVEL' \em 'ITEM' \em 'NAME': 'RESERVED' items must not be defined.</td><td></td></tr> <tr><td>M363</td> <td>ERROR</td><td>CPU: \<sauNumRegions> not set.</td><td></td></tr> <tr><td>M364</td> <td>ERROR</td><td>CPU: \<sauNumRegions> value \em 'NUM' greater than SAU max num (\em 'NUM2')</td><td></td></tr> <tr><td>M365</td> <td>WARNING</td><td>Register \em 'NAME' (\em 'ACCESS') (\@\em 'ADDRSIZE') has same address or overlaps \em 'NAME2' (\em 'ACCESS2') (\@\em 'ADDRSIZE2') \em 'LINE'</td><td></td></tr> <tr><td>M366</td> <td>ERROR</td><td>Register \em 'NAME' size (\em 'NUM'Bit) is greater than \<dimIncrement> * \<addressBitsUnits> (\em 'NUM2'Bit).</td><td></td></tr> <tr><td>M367</td> <td>WARNING</td><td>Access Type: Field \em 'NAME' (\em 'ACCESS') does not match Register \em 'NAME2' (\em 'ACCESS2')</td><td></td></tr> <tr><td>M368</td> <td>WARNING</td><td>\em 'LEVEL' \em 'NAME' (\@\em 'ADDR') has same address as \em 'NAME2' \em 'LINE'</td><td></td></tr> <tr><td>M369</td> <td>ERROR</td><td>Enumerated Value \em 'NAME': \<value> not set.</td><td></td></tr> <tr><td>M370</td> <td>ERROR</td><td>\em 'LEVEL' \em 'NAME': \<offset> not set.</td><td></td></tr> <tr><td>M371</td> <td>ERROR</td><td>\em 'LEVEL' \em 'NAME' \<headerStructName> is equal to hirachical name</td><td></td></tr> <tr><td>M372</td> <td>ERROR</td><td>\em 'LEVEL' \<\em 'TAG'> \em 'NAME' already defined \em 'LINE'</td><td></td></tr> <tr><td>M373</td> <td>ERROR</td><td>\em 'LEVEL' \<\em 'TAG'> \em 'NAME' already defined \em 'LINE'</td><td></td></tr> <tr><td>M374</td> <td>WARNING</td><td>\<enumeratedValues\> can be one \<enumeratedValues> container for all \<enumeratedValue\>s, where \<usage> can be read, write, or read-write or two \<enumeratedValues> containers, where one is set to \<usage> read and the other is set to \<usage> write</td><td></td></tr> <tr><td>M375</td> <td>ERROR</td><td>\em 'LEVEL' \em 'NAME' (\<enumeratedValues\> \em 'NAME2'): Too many \<enumeratedValues> container specified.</td><td></td></tr> <tr><td>M376</td> <td>ERROR</td><td>\em 'LEVEL' \em 'NAME' (\<enumeratedValues\> \em 'NAME2'): \em 'USAGE' container already defined in \em 'LINE'.</td><td></td></tr> <tr><td>M377</td> <td>ERROR</td><td>\em 'LEVEL' \em 'NAME' (\<enumeratedValues\> \em 'NAME2'): \em 'USAGE' container conflicts with \em 'NAME3' \em 'LINE'.</td><td></td></tr> <tr><td>M378</td> <td>ERROR</td><td>Register Array: Register \em 'NAME' size (\em 'NUM'Bit) does not match \<dimIncrement\> (\em 'NUM2'Bit).</td><td></td></tr> <tr><td>M379</td> <td>ERROR</td><td>XBin Number \em 'NAME' too large, skipping evaluation.</td><td></td></tr> <tr><td>M380</td> <td>ERROR</td><td>AddressBlock of Peripheral \em 'NAME' (\@\em 'ADDR') \em 'TEXT' does not fit into 32Bit Address Space.</td><td></td></tr> <tr><td>M381</td> <td>ERROR</td><td>Interrupt \em 'NAME' Number \em 'NUM' greater or equal deviceNumInterrupts (\em 'NUM2').</td><td></td></tr> <tr><td>M382</td> <td>ERROR</td><td>\em 'LEVEL' \em 'NAME': \em 'NAME2' \em 'HEXNUM' does not fit into \em 'LEVEL' width: \em 'NUM' Bit.</td><td></td></tr> </table> @subsection autotoc_md11 Data modification errors <table class="cmtable" summary="SfrCC2 related Data modification Errors"> | |
Message Number | Type | Message Text | Action |
M517 | WARNING | SFD Code generation: Forbidden Trigraph '??CHAR' found in 'NAME'. | |
M516 | WARNING | SFD Code generation: Unsupported character found in 'NAME' : 'HEX'. | |
M518 | WARNING | SFD Code generation: Unsupported ESC sequence found in 'NAME' : 'CHAR'. |