******************************************************************************
TMS470 Linker Unix v4.9.1
******************************************************************************
->> Linked Tue Aug 14 11:10:23 2012
+>> Linked Tue Aug 14 13:49:16 2012
OUTPUT FILE NAME: <CmdProcTISCI.out>
-ENTRY POINT SYMBOL: "_c_int00" address: 000045e0
+ENTRY POINT SYMBOL: "_c_int00" address: 0000732c
MEMORY CONFIGURATION
name origin length used unused attr fill
---------------------- -------- --------- -------- -------- ---- --------
VECTORS 00000000 00000020 00000020 00000000 X
- FLASH0 00000020 0017ffe0 000088a8 00177738 R X
+ FLASH0 00000020 0017ffe0 0000bb9c 00174444 R X
FLASH1 00180000 00180000 00000000 00180000 R X
STACKS 08000000 00001500 00000000 00001500 RW
- RAM 08001500 00026b00 00004234 000228cc RW
+ RAM 08001500 00026b00 0000423c 000228c4 RW
SEGMENT ALLOCATION MAP
run origin load origin length init length attrs members
---------- ----------- ---------- ----------- ----- -------
-00000000 00000000 000088c8 000088c8 r-x
+00000000 00000000 0000bbc0 0000bbc0 r-x
00000000 00000000 00000020 00000020 r-x .intvecs
- 00000020 00000020 00007fb4 00007fb4 r-x .text
- 00007fd4 00007fd4 00000834 00000834 r-- .const
- 00008808 00008808 000000c0 000000c0 r-- .cinit
-08001500 08001500 00004144 00000000 rw-
- 08001500 08001500 00004144 00000000 rw- .bss
-08005644 08005644 000000f0 000000f0 rw-
- 08005644 08005644 000000f0 000000f0 rw- .data
+ 00000020 00000020 0000b220 0000b220 r-x .text
+ 0000b240 0000b240 000008b4 000008b4 r-- .const
+ 0000baf8 0000baf8 000000c8 000000c8 r-- .cinit
+08001500 08001500 00004148 00000000 rw-
+ 08001500 08001500 00004148 00000000 rw- .bss
+08005648 08005648 000000f4 000000f4 rw-
+ 08005648 08005648 000000f4 000000f4 rw- .data
SECTION ALLOCATION MAP
.intvecs 0 00000000 00000020
00000000 00000020 sys_intvecs.obj (.intvecs)
-.text 0 00000020 00007fb4
- 00000020 000014c8 sys_selftest.obj (.text)
- 000014e8 00001460 os_tasks.obj (.text)
- 00002948 00000b48 os_queue.obj (.text)
- 00003490 00000b18 cmd_proc.obj (.text)
- 00003fa8 00000638 os_port.obj (.text)
- 000045e0 000005a8 sys_startup.obj (.text:retain)
- 00004b88 00000540 sci.obj (.text)
- 000050c8 0000043c esm.obj (.text)
- 00005504 000003cc cmd_io_line.obj (.text)
- 000058d0 000003bc cmdio_tisci.obj (.text)
- 00005c8c 00000384 sci.obj (.text:retain)
- 00006010 00000384 sys_core.obj (.text)
- 00006394 00000308 system.obj (.text)
- 0000669c 00000300 pinmux.obj (.text)
- 0000699c 000002b8 i2str.obj (.text)
- 00006c54 0000029c commands.obj (.text)
- 00006ef0 00000240 os_list.obj (.text)
- 00007130 00000220 esm.obj (.text:retain)
- 00007350 000001d4 cmd_io.obj (.text)
- 00007524 00000180 cmd_proc_freertos_tms570.obj (.text)
- 000076a4 0000016c os_portasm.obj (.text)
- 00007810 00000150 cmd_proc_run.obj (.text)
- 00007960 000000e8 os_heap.obj (.text)
- 00007a48 000000c0 dabort.obj (.text)
- 00007b08 0000009c rtsv7R4_T_be_v3D16_eabi.lib : memcpy_t2.obj (.text)
- 00007ba4 00000088 notification.obj (.text)
- 00007c2c 00000078 rtsv7R4_T_be_v3D16_eabi.lib : memset_t2.obj (.text)
- 00007ca4 00000060 : copy_decompress_rle.obj (.text)
- 00007d04 00000054 : u_div32.obj (.text)
- 00007d58 00000050 : atoi.obj (.text)
- 00007da8 00000050 : atol.obj (.text)
- 00007df8 0000004c : cpy_tbl.obj (.text)
- 00007e44 00000048 sys_main.obj (.text)
- 00007e8c 00000044 rtsv7R4_T_be_v3D16_eabi.lib : exit.obj (.text)
- 00007ed0 00000030 : strncpy.obj (.text)
- 00007f00 00000026 : strncmp.obj (.text)
- 00007f26 00000002 --HOLE-- [fill = 0]
- 00007f28 00000018 : _lock.obj (.text)
- 00007f40 00000016 : strchr.obj (.text)
- 00007f56 00000014 : strlen.obj (.text)
- 00007f6a 00000012 : copy_zero_init.obj (.text:decompress:ZI)
- 00007f7c 00000010 : isalnum.obj (.text)
- 00007f8c 00000010 : isdigit.obj (.text)
- 00007f9c 00000010 : isspace.obj (.text)
- 00007fac 00000010 : strcpy.obj (.text)
- 00007fbc 0000000e : copy_decompress_none.obj (.text:decompress:none)
- 00007fca 00000006 : copy_decompress_rle.obj (.text:decompress:rle24)
- 00007fd0 00000004 sys_phantom.obj (.text:retain)
+.text 0 00000020 0000b220
+ 00000020 00002d4c can.obj (.text)
+ 00002d6c 000014c8 sys_selftest.obj (.text)
+ 00004234 00001460 os_tasks.obj (.text)
+ 00005694 00000b48 os_queue.obj (.text)
+ 000061dc 00000b18 cmd_proc.obj (.text)
+ 00006cf4 00000638 os_port.obj (.text)
+ 0000732c 000005ac sys_startup.obj (.text:retain)
+ 000078d8 00000540 sci.obj (.text)
+ 00007e18 0000043c esm.obj (.text)
+ 00008254 00000424 commands.obj (.text)
+ 00008678 000003cc cmd_io_line.obj (.text)
+ 00008a44 000003bc cmdio_tisci.obj (.text)
+ 00008e00 00000384 sci.obj (.text:retain)
+ 00009184 00000384 sys_core.obj (.text)
+ 00009508 00000308 system.obj (.text)
+ 00009810 00000300 pinmux.obj (.text)
+ 00009b10 000002e0 can.obj (.text:retain)
+ 00009df0 000002b8 i2str.obj (.text)
+ 0000a0a8 00000240 os_list.obj (.text)
+ 0000a2e8 00000220 esm.obj (.text:retain)
+ 0000a508 000001d4 cmd_io.obj (.text)
+ 0000a6dc 00000180 cmd_proc_freertos_tms570.obj (.text)
+ 0000a85c 0000016c os_portasm.obj (.text)
+ 0000a9c8 00000150 cmd_proc_run.obj (.text)
+ 0000ab18 00000120 notification.obj (.text)
+ 0000ac38 000000e8 os_heap.obj (.text)
+ 0000ad20 000000c0 dabort.obj (.text)
+ 0000ade0 0000009c rtsv7R4_T_be_v3D16_eabi.lib : memcpy_t2.obj (.text)
+ 0000ae7c 00000078 : memset_t2.obj (.text)
+ 0000aef4 00000064 sys_main.obj (.text)
+ 0000af58 00000060 rtsv7R4_T_be_v3D16_eabi.lib : copy_decompress_rle.obj (.text)
+ 0000afb8 00000054 : u_div32.obj (.text)
+ 0000b00c 00000050 : atoi.obj (.text)
+ 0000b05c 00000050 : atol.obj (.text)
+ 0000b0ac 0000004c : cpy_tbl.obj (.text)
+ 0000b0f8 00000044 : exit.obj (.text)
+ 0000b13c 00000030 : strncpy.obj (.text)
+ 0000b16c 00000026 : strncmp.obj (.text)
+ 0000b192 00000002 --HOLE-- [fill = 0]
+ 0000b194 00000018 : _lock.obj (.text)
+ 0000b1ac 00000016 : strchr.obj (.text)
+ 0000b1c2 00000014 : strlen.obj (.text)
+ 0000b1d6 00000012 : copy_zero_init.obj (.text:decompress:ZI)
+ 0000b1e8 00000010 : isalnum.obj (.text)
+ 0000b1f8 00000010 : isdigit.obj (.text)
+ 0000b208 00000010 : isspace.obj (.text)
+ 0000b218 00000010 : strcpy.obj (.text)
+ 0000b228 0000000e : copy_decompress_none.obj (.text:decompress:none)
+ 0000b236 00000006 : copy_decompress_rle.obj (.text:decompress:rle24)
+ 0000b23c 00000004 sys_phantom.obj (.text:retain)
-.const 0 00007fd4 00000834
- 00007fd4 00000304 commands.obj (.const:.string)
- 000082d8 00000204 sys_startup.obj (.const:s_vim_init)
- 000084dc 00000187 commands.obj (.const)
- 00008663 00000001 --HOLE-- [fill = 0]
- 00008664 00000101 rtsv7R4_T_be_v3D16_eabi.lib : ctype.obj (.const:_ctypes_)
- 00008765 00000003 --HOLE-- [fill = 0]
- 00008768 00000038 cmd_proc_freertos_tms570.obj (.const:$P$T0$1)
- 000087a0 00000026 commands.obj (.const:$P$T0$1)
- 000087c6 00000002 --HOLE-- [fill = 0]
- 000087c8 00000023 commands.obj (.const:$P$T1$2)
- 000087eb 00000001 --HOLE-- [fill = 0]
- 000087ec 0000001c cmdio_std_line.obj (.const)
+.const 0 0000b240 000008b4
+ 0000b240 00000344 commands.obj (.const:.string)
+ 0000b584 00000204 sys_startup.obj (.const:s_vim_init)
+ 0000b788 000001a7 commands.obj (.const)
+ 0000b92f 00000001 --HOLE-- [fill = 0]
+ 0000b930 00000101 rtsv7R4_T_be_v3D16_eabi.lib : ctype.obj (.const:_ctypes_)
+ 0000ba31 00000003 --HOLE-- [fill = 0]
+ 0000ba34 00000038 cmd_proc_freertos_tms570.obj (.const:$P$T0$1)
+ 0000ba6c 00000026 commands.obj (.const:$P$T1$2)
+ 0000ba92 00000002 --HOLE-- [fill = 0]
+ 0000ba94 00000023 commands.obj (.const:$P$T2$3)
+ 0000bab7 00000001 --HOLE-- [fill = 0]
+ 0000bab8 00000020 can.obj (.const)
+ 0000bad8 0000001c cmdio_std_line.obj (.const)
-.cinit 0 00008808 000000c0
- 00008808 00000099 (.cinit..data.load) [load image, compression = rle]
- 000088a1 00000003 --HOLE-- [fill = 0]
- 000088a4 0000000c (__TI_handler_table)
- 000088b0 00000008 (.cinit..bss.load) [load image, compression = zero_init]
- 000088b8 00000010 (__TI_cinit_table)
+.cinit 0 0000baf8 000000c8
+ 0000baf8 0000009d (.cinit..data.load) [load image, compression = rle]
+ 0000bb95 00000003 --HOLE-- [fill = 0]
+ 0000bb98 0000000c (__TI_handler_table)
+ 0000bba4 00000004 --HOLE-- [fill = 0]
+ 0000bba8 00000008 (.cinit..bss.load) [load image, compression = zero_init]
+ 0000bbb0 00000010 (__TI_cinit_table)
-.bss 0 08001500 00004144 UNINITIALIZED
+.bss 0 08001500 00004148 UNINITIALIZED
08001500 00003fa0 os_heap.obj (.bss:xHeap)
080054a0 00000064 os_tasks.obj (.bss:pxReadyTasksLists)
08005504 00000058 os_tasks.obj (.bss)
08005604 0000001c sci.obj (.bss)
08005620 00000018 cmdio_tisci.obj (.bss)
08005638 00000008 cmd_proc_freertos_tms570.obj (.bss)
- 08005640 00000004 commands.obj (.bss)
+ 08005640 00000008 commands.obj (.bss)
-.data 0 08005644 000000f0
- 08005644 0000005c commands.obj (.data)
- 080056a0 00000030 cmdio_std_line.obj (.data)
- 080056d0 00000030 os_tasks.obj (.data)
- 08005700 0000001c cmdio_tisci.obj (.data)
- 0800571c 00000008 rtsv7R4_T_be_v3D16_eabi.lib : _lock.obj (.data)
- 08005724 00000008 : exit.obj (.data)
- 0800572c 00000004 os_heap.obj (.data)
- 08005730 00000004 os_port.obj (.data)
+.data 0 08005648 000000f4
+ 08005648 0000003c commands.obj (.data)
+ 08005684 00000030 cmdio_std_line.obj (.data)
+ 080056b4 00000030 os_tasks.obj (.data)
+ 080056e4 00000024 commands.obj (.data:cmd_list_main)
+ 08005708 0000001c cmdio_tisci.obj (.data)
+ 08005724 00000008 rtsv7R4_T_be_v3D16_eabi.lib : _lock.obj (.data)
+ 0800572c 00000008 : exit.obj (.data)
+ 08005734 00000004 os_heap.obj (.data)
+ 08005738 00000004 os_port.obj (.data)
LINKER GENERATED COPY TABLES
-__TI_cinit_table @ 000088b8 records: 2, size/record: 8, table size: 16
- .data: load addr=00008808, load size=00000099 bytes, run addr=08005644, run size=000000f0 bytes, compression=rle
- .bss: load addr=000088b0, load size=00000008 bytes, run addr=08001500, run size=00004144 bytes, compression=zero_init
+__TI_cinit_table @ 0000bbb0 records: 2, size/record: 8, table size: 16
+ .data: load addr=0000baf8, load size=0000009d bytes, run addr=08005648, run size=000000f4 bytes, compression=rle
+ .bss: load addr=0000bba8, load size=00000008 bytes, run addr=08001500, run size=00004148 bytes, compression=zero_init
LINKER GENERATED HANDLER TABLE
-__TI_handler_table @ 000088a4 records: 3, size/record: 4, table size: 12
+__TI_handler_table @ 0000bb98 records: 3, size/record: 4, table size: 12
index: 0, handler: __TI_zero_init
index: 1, handler: __TI_decompress_rle24
index: 2, handler: __TI_decompress_none
address name
-------- ----
-00007e8d C$$EXIT
-000088b8 __TI_CINIT_Base
-000088c8 __TI_CINIT_Limit
-000088a4 __TI_Handler_Table_Base
-000088b0 __TI_Handler_Table_Limit
-0000638c __TI_PINIT_Base
-00006390 __TI_PINIT_Limit
-00007fbd __TI_decompress_none
-00007fcb __TI_decompress_rle24
+0000b0f9 C$$EXIT
+0000bbb0 __TI_CINIT_Base
+0000bbc0 __TI_CINIT_Limit
+0000bb98 __TI_Handler_Table_Base
+0000bba4 __TI_Handler_Table_Limit
+00009500 __TI_PINIT_Base
+00009504 __TI_PINIT_Limit
+0000b229 __TI_decompress_none
+0000b237 __TI_decompress_rle24
00000000 __TI_static_base__
-00007f6b __TI_zero_init
-00007c2d __aeabi_memclr
-00007c2d __aeabi_memclr4
-00007c2d __aeabi_memclr8
-00007b09 __aeabi_memcpy
-00007b09 __aeabi_memcpy4
-00007b09 __aeabi_memcpy8
-00007c2f __aeabi_memset
-00007c2f __aeabi_memset4
-00007c2f __aeabi_memset8
-00007d04 __aeabi_uidivmod
+0000b1d7 __TI_zero_init
+0000ae7d __aeabi_memclr
+0000ae7d __aeabi_memclr4
+0000ae7d __aeabi_memclr8
+0000ade1 __aeabi_memcpy
+0000ade1 __aeabi_memcpy4
+0000ade1 __aeabi_memcpy8
+0000ae7f __aeabi_memset
+0000ae7f __aeabi_memset4
+0000ae7f __aeabi_memset8
+0000afb8 __aeabi_uidivmod
ffffffff __binit__
ffffffff __c_args__
-000045e0 _c_int00
-08005724 _cleanup_ptr
-000062b4 _coreClearAuxiliaryDataFault_
-000062d0 _coreClearAuxiliaryInstructionFault_
-0000627c _coreClearDataFaultAddress_
-00006244 _coreClearDataFault_
-00006298 _coreClearInstructionFaultAddress_
-00006260 _coreClearInstructionFault_
-000061a8 _coreDisableEventBusExport_
-0000620c _coreDisableFlashEcc_
-000061d8 _coreDisableRamEcc_
-00006190 _coreEnableEventBusExport_
-000061f0 _coreEnableFlashEcc_
-00006224 _coreEnableIrqVicOffset_
-000061c0 _coreEnableRamEcc_
-00006178 _coreEnableVfp_
-000062ac _coreGetAuxiliaryDataFault_
-000062c8 _coreGetAuxiliaryInstructionFault_
-00006274 _coreGetDataFaultAddress_
-0000623c _coreGetDataFault_
-00006290 _coreGetInstructionFaultAddress_
-00006258 _coreGetInstructionFault_
-00006010 _coreInitRegisters_
-00006110 _coreInitStackPointer_
-00008664 _ctypes_
-00007a48 _dabort
-000062ec _disable_FIQ_interrupt_
-000062f4 _disable_IRQ_interrupt_
-000062e4 _disable_interrupt_
-08005728 _dtors_ptr
-000062fc _enable_interrupt_
-00006304 _esmCcmErrorsClear_
-0000615c _getCPSRValue_
-00006164 _gotoCPUIdle_
-0800571c _lock
-00000138 _memoryInit_
-00007f35 _nop
-00007f2f _register_lock
-00007f29 _register_unlock
-08005720 _unlock
-00007e91 abort
-00000e28 adc1ParityCheck
-00000e94 adc2ParityCheck
-00007d59 atoi
-00007da9 atol
+0000732c _c_int00
+0800572c _cleanup_ptr
+00009428 _coreClearAuxiliaryDataFault_
+00009444 _coreClearAuxiliaryInstructionFault_
+000093f0 _coreClearDataFaultAddress_
+000093b8 _coreClearDataFault_
+0000940c _coreClearInstructionFaultAddress_
+000093d4 _coreClearInstructionFault_
+0000931c _coreDisableEventBusExport_
+00009380 _coreDisableFlashEcc_
+0000934c _coreDisableRamEcc_
+00009304 _coreEnableEventBusExport_
+00009364 _coreEnableFlashEcc_
+00009398 _coreEnableIrqVicOffset_
+00009334 _coreEnableRamEcc_
+000092ec _coreEnableVfp_
+00009420 _coreGetAuxiliaryDataFault_
+0000943c _coreGetAuxiliaryInstructionFault_
+000093e8 _coreGetDataFaultAddress_
+000093b0 _coreGetDataFault_
+00009404 _coreGetInstructionFaultAddress_
+000093cc _coreGetInstructionFault_
+00009184 _coreInitRegisters_
+00009284 _coreInitStackPointer_
+0000b930 _ctypes_
+0000ad20 _dabort
+00009460 _disable_FIQ_interrupt_
+00009468 _disable_IRQ_interrupt_
+00009458 _disable_interrupt_
+08005730 _dtors_ptr
+00009470 _enable_interrupt_
+00009478 _esmCcmErrorsClear_
+000092d0 _getCPSRValue_
+000092d8 _gotoCPUIdle_
+08005724 _lock
+00002e84 _memoryInit_
+0000b1a1 _nop
+0000b19b _register_lock
+0000b195 _register_unlock
+08005728 _unlock
+0000b0fd abort
+00003b74 adc1ParityCheck
+00003be0 adc2ParityCheck
+0000b00d atoi
+0000b05d atol
ffffffff binit
-00000f00 can1ParityCheck
-00000f80 can2ParityCheck
-00001010 can3ParityCheck
-00000104 ccmFail
-00000020 ccmSelfCheck
-00000854 checkB0RAMECC
-00000978 checkB1RAMECC
-00000a98 checkFlashECC
-000006d8 checkefcSelfTest
-00005b08 clearBuffer
-00005ae8 clearInputBuffer
-00005af8 clearOutputBuffer
-000085fc cmd_des_char
-00008614 cmd_des_charmid
-0000856c cmd_des_error
-000084dc cmd_des_help
-0000862c cmd_des_hiddedn
-000085e4 cmd_des_num
-0000853c cmd_des_opchar_test
-0000859c cmd_des_opchar_testro
-00008584 cmd_des_param
-000085cc cmd_des_prefix
-000085b4 cmd_des_test
-00008554 cmd_des_testio
-000084f4 cmd_des_val
-0000850c cmd_des_valro
-00008524 cmd_des_valwo
-00003da0 cmd_do_help
-00003bd8 cmd_do_rw_int
-00003c78 cmd_do_rw_long
-00003b38 cmd_do_rw_short
-00003ab4 cmd_do_stamp
-00006db8 cmd_do_test
-00006df0 cmd_do_testcmdio
-00006d9c cmd_do_testerror
-00006c54 cmd_do_testopchar
-00006d28 cmd_do_testparam
-00005574 cmd_ed_line_buf
-08005700 cmd_io_buf
-000057a4 cmd_io_line_in
-000056ac cmd_io_line_out
-0000568c cmd_io_line_putc
-0000587c cmd_io_line_rdline
-00007394 cmd_io_puts
-000074a0 cmd_io_read_bychar
-000087ec cmd_io_std_line
-00007428 cmd_io_write_bychar
-0800569c cmd_list
-08005644 cmd_list_1
-0800565c cmd_list_2
-0800567c cmd_list_main
-000039e4 cmd_num_suffix
-00003968 cmd_opchar_check
-00003d18 cmd_opchar_replong
-0000784c cmd_processor_run
-00007df9 copy_in
-00000224 cpuSelfTest
-00000b68 cpuSelfTestFail
-00000b60 custom_dabort
-00000be0 dmaParityCheck
-080056a0 ed_line_buf_in_std
-080056b8 ed_line_buf_out_std
+00009b10 can1HighLevelInterrupt
+00009bcc can1LowLevelInterrupt
+00003c4c can1ParityCheck
+00009c68 can2HighLevelInterrupt
+00009d24 can2LowLevelInterrupt
+00003ccc can2ParityCheck
+00003d5c can3ParityCheck
+00002c8c canDisableErrorNotification
+00002c6c canEnableErrorNotification
+0000ab60 canErrorNotification
+000029e0 canGetData
+00002c48 canGetErrorLevel
+00002c24 canGetLastError
+00000030 canInit
+00002d38 canIoRxGetBit
+00002cac canIoSetDirection
+00002ce4 canIoSetPort
+00002d1c canIoTxGetBit
+00002bc8 canIsMessageBoxValid
+00002b6c canIsRxMessageArrived
+00002b10 canIsTxMessagePending
+0000ab84 canMessageNotification
+08005640 canMsgReceived
+000028fc canTransmit
+00002e50 ccmFail
+00002d6c ccmSelfCheck
+000035a0 checkB0RAMECC
+000036c4 checkB1RAMECC
+000037e4 checkFlashECC
+00003424 checkefcSelfTest
+00008c7c clearBuffer
+00008c5c clearInputBuffer
+00008c6c clearOutputBuffer
+0000b8c0 cmd_des_char
+0000b8d8 cmd_des_charmid
+0000b830 cmd_des_error
+0000b7a0 cmd_des_help
+0000b8f0 cmd_des_hiddedn
+0000b8a8 cmd_des_num
+0000b800 cmd_des_opchar_test
+0000b860 cmd_des_opchar_testro
+0000b848 cmd_des_param
+0000b890 cmd_des_prefix
+0000b878 cmd_des_test
+0000b788 cmd_des_testcanloopback
+0000b818 cmd_des_testio
+0000b7b8 cmd_des_val
+0000b7d0 cmd_des_valro
+0000b7e8 cmd_des_valwo
+00006aec cmd_do_help
+00006924 cmd_do_rw_int
+000069c4 cmd_do_rw_long
+00006884 cmd_do_rw_short
+00006800 cmd_do_stamp
+000084e4 cmd_do_test
+00008254 cmd_do_testcanloopback
+0000851c cmd_do_testcmdio
+000084c8 cmd_do_testerror
+00008380 cmd_do_testopchar
+00008454 cmd_do_testparam
+000086e8 cmd_ed_line_buf
+08005708 cmd_io_buf
+00008918 cmd_io_line_in
+00008820 cmd_io_line_out
+00008800 cmd_io_line_putc
+000089f0 cmd_io_line_rdline
+0000a54c cmd_io_puts
+0000a658 cmd_io_read_bychar
+0000bad8 cmd_io_std_line
+0000a5e0 cmd_io_write_bychar
+08005680 cmd_list
+08005648 cmd_list_1
+08005660 cmd_list_2
+080056e4 cmd_list_main
+00006730 cmd_num_suffix
+000066b4 cmd_opchar_check
+00006a64 cmd_opchar_replong
+0000aa04 cmd_processor_run
+0000b0ad copy_in
+00002f70 cpuSelfTest
+000038b4 cpuSelfTestFail
+000038ac custom_dabort
+0000392c dmaParityCheck
+08005684 ed_line_buf_in_std
+0800569c ed_line_buf_out_std
0800555c ed_line_in_std
080055b0 ed_line_out_std
-000005a0 efcCheck
-00000770 efcClass1Error
-00000774 efcClass2Error
-000006b0 efcSelfTest
-000005fc efcStuckZeroTest
-00005278 esmActivateNormalOperation
-00005364 esmClearStatus
-000053a4 esmClearStatusBuffer
-0000523c esmDisableError
-000052b4 esmDisableInterrupt
-00005210 esmEnableError
-00005288 esmEnableInterrupt
-000051f4 esmError
-000053f0 esmGetStatus
-00005454 esmGetStatusBuffer
-00007ba4 esmGroup1Notification
-00007bb0 esmGroup2Notification
-00007130 esmHighInterrupt
-000050c8 esmInit
-00007274 esmLowInterrupt
-000053d0 esmSetCounterPreloadValue
-000052e0 esmSetInterruptLevel
-00005268 esmTriggerErrorPinReset
-00007e99 exit
-00000b58 flashClass1Error
-00000b5c flashClass2Error
-00000778 fmcBus2Check
-0000084c fmcClass1Error
-00000850 fmcClass2Error
-000007b4 fmcECCcheck
+000032ec efcCheck
+000034bc efcClass1Error
+000034c0 efcClass2Error
+000033fc efcSelfTest
+00003348 efcStuckZeroTest
+00007fc8 esmActivateNormalOperation
+000080b4 esmClearStatus
+000080f4 esmClearStatusBuffer
+00007f8c esmDisableError
+00008004 esmDisableInterrupt
+00007f60 esmEnableError
+00007fd8 esmEnableInterrupt
+00007f44 esmError
+00008140 esmGetStatus
+000081a4 esmGetStatusBuffer
+0000ab18 esmGroup1Notification
+0000ab24 esmGroup2Notification
+0000a2e8 esmHighInterrupt
+00007e18 esmInit
+0000a42c esmLowInterrupt
+00008120 esmSetCounterPreloadValue
+00008030 esmSetInterruptLevel
+00007fb8 esmTriggerErrorPinReset
+0000b105 exit
+000038a4 flashClass1Error
+000038a8 flashClass2Error
+000034c4 fmcBus2Check
+00003598 fmcClass1Error
+0000359c fmcClass2Error
+00003500 fmcECCcheck
08005608 g_sciTransfer
-000059a8 genericPrint
-00005960 genericRead
-00000c54 het1ParityCheck
-00000d30 het2ParityCheck
-00000cbc htu1ParityCheck
-00000db4 htu2ParityCheck
-0000699c i2str
+00008b1c genericPrint
+00008ad4 genericRead
+000039a0 het1ParityCheck
+00003a7c het2ParityCheck
+00003a08 htu1ParityCheck
+00003b00 htu2ParityCheck
+00009df0 i2str
0800562c inBuffer
-00007524 initCmdProc
-000058d0 initIoBuffer
-00007f7d isalnum
-00007f8d isdigit
-00007f9d isspace
-00007e44 main
-000064a8 mapClocks
-00007b09 memcpy
-00007bbc memoryPort0TestFailNotification
-00007bd4 memoryPort1TestFailNotification
-00007c35 memset
-000010a4 mibspi1ParityCheck
-0000118c mibspi3ParityCheck
-00001284 mibspi5ParityCheck
-0000669c muxInit
+0000a6dc initCmdProc
+00008a44 initIoBuffer
+0000b1e9 isalnum
+0000b1f9 isdigit
+0000b209 isspace
+0000aef4 main
+0000961c mapClocks
+0000ade1 memcpy
+0000ab30 memoryPort0TestFailNotification
+0000ab48 memoryPort1TestFailNotification
+0000ae85 memset
+00003df0 mibspi1ParityCheck
+00003ed8 mibspi3ParityCheck
+00003fd0 mibspi5ParityCheck
+00009810 muxInit
08005620 outBuffer
-000004ec pbistIsTestCompleted
-00000508 pbistIsTestPassed
-00000544 pbistPortTestStatus
-000003e4 pbistRun
-000002a4 pbistSelfCheck
-000003e0 pbistSelfCheckFail
-000004bc pbistStop
-00006450 periphInit
-00007fd0 phantomInterrupt
-00005930 print
-00003544 proc_cmd_line
-00007644 processCmd
+00003238 pbistIsTestCompleted
+00003254 pbistIsTestPassed
+00003290 pbistPortTestStatus
+00003130 pbistRun
+00002ff0 pbistSelfCheck
+0000312c pbistSelfCheckFail
+00003208 pbistStop
+000095c4 periphInit
+0000b23c phantomInterrupt
+00008aa4 print
+00006290 proc_cmd_line
+0000a7fc processCmd
08005638 processCmdHandler
0800563c prompt
-00007960 pvPortMalloc
-080056d0 pxCurrentTCB
-00003fa8 pxPortInitialiseStack
-00005948 read
-00004f8c sciDisableLoopback
-00005010 sciDisableNotification
-00004f58 sciEnableLoopback
-00004fa8 sciEnableNotification
-00005c8c sciHighLevelInterrupt
-00004b88 sciInit
-00004e5c sciIsRxReady
-00004cfc sciIsTxReady
-00005e24 sciLowLevelInterrupt
-00007bec sciNotification
-00004ed0 sciReceive
-00004ea8 sciReceiveByte
-00004e78 sciRxError
-00004d48 sciSend
-00004d18 sciSendByte
-00004c7c sciSetBaudrate
-00004c5c sciSetFunctional
-00006410 setupFlash
-00006394 setupPLL
-00003510 skip_white
-0000017c stcSelfCheck
-00000b64 stcSelfCheckFail
-00007f41 strchr
-00007fad strcpy
-00007f57 strlen
-00007f01 strncmp
-00007ed1 strncpy
-00006580 systemInit
-0000660c systemPowerDown
-00000a90 tcramClass1Error
-00000a94 tcramClass2Error
-00005b8c tisci_getc
-00005b50 tisci_putc
-00005bfc tisci_read
-00005bbc tisci_write
-000063c8 trimLPO
-08005730 ulCriticalNesting
-000030bc uxQueueMessagesWaiting
-000030e0 uxQueueMessagesWaitingFromISR
-00001ebc uxTaskGetNumberOfTasks
-0000269c uxTaskGetStackHighWaterMark
-0000184c uxTaskPriorityGet
-00006ef0 vListInitialise
-00006f48 vListInitialiseItem
-00006fe8 vListInsert
-00006f64 vListInsertEnd
-000070ac vListRemove
-0000449c vPortEndScheduler
-000044a0 vPortEnterCritical
-000044b8 vPortExitCritical
-00007a08 vPortFree
-00007a18 vPortInitialiseBlocks
-000076a4 vPortStartFirstTask
-000077fc vPortYield
-000076d8 vPortYieldProcessor
-00007760 vPreemptiveTick
-00003100 vQueueDelete
-000017e4 vTaskDelay
-000016e8 vTaskDelayUntil
-00001cd8 vTaskEndScheduler
-00001ed0 vTaskIncrementTick
-000023c4 vTaskMissedYield
-00002170 vTaskPlaceOnEventList
-00002860 vTaskPriorityDisinherit
-0000275c vTaskPriorityInherit
-00001890 vTaskPrioritySet
-00001b98 vTaskResume
-000022bc vTaskSetTimeOutState
-00001c5c vTaskStartScheduler
-00001a2c vTaskSuspend
-00001cf4 vTaskSuspendAll
-000020a8 vTaskSwitchContext
-08005640 val
-00000b6c vimParityCheck
-00007a28 xPortGetFreeHeapSize
-00004488 xPortStartScheduler
-00002948 xQueueCreate
-00002b34 xQueueCreateCountingSemaphore
-00002a78 xQueueCreateMutex
-00002dc4 xQueueGenericReceive
-00002b70 xQueueGenericSend
-00002cf8 xQueueGenericSendFromISR
-000033ec xQueueIsQueueEmptyFromISR
-00003458 xQueueIsQueueFullFromISR
-00002ff0 xQueueReceiveFromISR
-000022ec xTaskCheckForTimeOut
-000014e8 xTaskGenericCreate
-000026ec xTaskGetCurrentTaskHandle
-0000270c xTaskGetSchedulerState
-00001e78 xTaskGetTickCount
-00001e98 xTaskGetTickCountFromISR
-00001b04 xTaskIsTaskSuspended
-000021e4 xTaskRemoveFromEventList
-00001d08 xTaskResumeAll
+0000ac38 pvPortMalloc
+080056b4 pxCurrentTCB
+00006cf4 pxPortInitialiseStack
+00008abc read
+00007cdc sciDisableLoopback
+00007d60 sciDisableNotification
+00007ca8 sciEnableLoopback
+00007cf8 sciEnableNotification
+00008e00 sciHighLevelInterrupt
+000078d8 sciInit
+00007bac sciIsRxReady
+00007a4c sciIsTxReady
+00008f98 sciLowLevelInterrupt
+0000abec sciNotification
+00007c20 sciReceive
+00007bf8 sciReceiveByte
+00007bc8 sciRxError
+00007a98 sciSend
+00007a68 sciSendByte
+000079cc sciSetBaudrate
+000079ac sciSetFunctional
+00009584 setupFlash
+00009508 setupPLL
+0000625c skip_white
+00002ec8 stcSelfCheck
+000038b0 stcSelfCheckFail
+0000b1ad strchr
+0000b219 strcpy
+0000b1c3 strlen
+0000b16d strncmp
+0000b13d strncpy
+000096f4 systemInit
+00009780 systemPowerDown
+000037dc tcramClass1Error
+000037e0 tcramClass2Error
+00008d00 tisci_getc
+00008cc4 tisci_putc
+00008d70 tisci_read
+00008d30 tisci_write
+0000953c trimLPO
+08005738 ulCriticalNesting
+00005e08 uxQueueMessagesWaiting
+00005e2c uxQueueMessagesWaitingFromISR
+00004c08 uxTaskGetNumberOfTasks
+000053e8 uxTaskGetStackHighWaterMark
+00004598 uxTaskPriorityGet
+0000a0a8 vListInitialise
+0000a100 vListInitialiseItem
+0000a1a0 vListInsert
+0000a11c vListInsertEnd
+0000a264 vListRemove
+000071e8 vPortEndScheduler
+000071ec vPortEnterCritical
+00007204 vPortExitCritical
+0000ace0 vPortFree
+0000acf0 vPortInitialiseBlocks
+0000a85c vPortStartFirstTask
+0000a9b4 vPortYield
+0000a890 vPortYieldProcessor
+0000a918 vPreemptiveTick
+00005e4c vQueueDelete
+00004530 vTaskDelay
+00004434 vTaskDelayUntil
+00004a24 vTaskEndScheduler
+00004c1c vTaskIncrementTick
+00005110 vTaskMissedYield
+00004ebc vTaskPlaceOnEventList
+000055ac vTaskPriorityDisinherit
+000054a8 vTaskPriorityInherit
+000045dc vTaskPrioritySet
+000048e4 vTaskResume
+00005008 vTaskSetTimeOutState
+000049a8 vTaskStartScheduler
+00004778 vTaskSuspend
+00004a40 vTaskSuspendAll
+00004df4 vTaskSwitchContext
+08005644 val
+000038b8 vimParityCheck
+0000ad00 xPortGetFreeHeapSize
+000071d4 xPortStartScheduler
+00005694 xQueueCreate
+00005880 xQueueCreateCountingSemaphore
+000057c4 xQueueCreateMutex
+00005b10 xQueueGenericReceive
+000058bc xQueueGenericSend
+00005a44 xQueueGenericSendFromISR
+00006138 xQueueIsQueueEmptyFromISR
+000061a4 xQueueIsQueueFullFromISR
+00005d3c xQueueReceiveFromISR
+00005038 xTaskCheckForTimeOut
+00004234 xTaskGenericCreate
+00005438 xTaskGetCurrentTaskHandle
+00005458 xTaskGetSchedulerState
+00004bc4 xTaskGetTickCount
+00004be4 xTaskGetTickCountFromISR
+00004850 xTaskIsTaskSuspended
+00004f30 xTaskRemoveFromEventList
+00004a54 xTaskResumeAll
GLOBAL SYMBOLS: SORTED BY Symbol Address
address name
-------- ----
00000000 __TI_static_base__
-00000020 ccmSelfCheck
-00000104 ccmFail
-00000138 _memoryInit_
-0000017c stcSelfCheck
-00000224 cpuSelfTest
-000002a4 pbistSelfCheck
-000003e0 pbistSelfCheckFail
-000003e4 pbistRun
-000004bc pbistStop
-000004ec pbistIsTestCompleted
-00000508 pbistIsTestPassed
-00000544 pbistPortTestStatus
-000005a0 efcCheck
-000005fc efcStuckZeroTest
-000006b0 efcSelfTest
-000006d8 checkefcSelfTest
-00000770 efcClass1Error
-00000774 efcClass2Error
-00000778 fmcBus2Check
-000007b4 fmcECCcheck
-0000084c fmcClass1Error
-00000850 fmcClass2Error
-00000854 checkB0RAMECC
-00000978 checkB1RAMECC
-00000a90 tcramClass1Error
-00000a94 tcramClass2Error
-00000a98 checkFlashECC
-00000b58 flashClass1Error
-00000b5c flashClass2Error
-00000b60 custom_dabort
-00000b64 stcSelfCheckFail
-00000b68 cpuSelfTestFail
-00000b6c vimParityCheck
-00000be0 dmaParityCheck
-00000c54 het1ParityCheck
-00000cbc htu1ParityCheck
-00000d30 het2ParityCheck
-00000db4 htu2ParityCheck
-00000e28 adc1ParityCheck
-00000e94 adc2ParityCheck
-00000f00 can1ParityCheck
-00000f80 can2ParityCheck
-00001010 can3ParityCheck
-000010a4 mibspi1ParityCheck
-0000118c mibspi3ParityCheck
-00001284 mibspi5ParityCheck
-000014e8 xTaskGenericCreate
-000016e8 vTaskDelayUntil
-000017e4 vTaskDelay
-0000184c uxTaskPriorityGet
-00001890 vTaskPrioritySet
-00001a2c vTaskSuspend
-00001b04 xTaskIsTaskSuspended
-00001b98 vTaskResume
-00001c5c vTaskStartScheduler
-00001cd8 vTaskEndScheduler
-00001cf4 vTaskSuspendAll
-00001d08 xTaskResumeAll
-00001e78 xTaskGetTickCount
-00001e98 xTaskGetTickCountFromISR
-00001ebc uxTaskGetNumberOfTasks
-00001ed0 vTaskIncrementTick
-000020a8 vTaskSwitchContext
-00002170 vTaskPlaceOnEventList
-000021e4 xTaskRemoveFromEventList
-000022bc vTaskSetTimeOutState
-000022ec xTaskCheckForTimeOut
-000023c4 vTaskMissedYield
-0000269c uxTaskGetStackHighWaterMark
-000026ec xTaskGetCurrentTaskHandle
-0000270c xTaskGetSchedulerState
-0000275c vTaskPriorityInherit
-00002860 vTaskPriorityDisinherit
-00002948 xQueueCreate
-00002a78 xQueueCreateMutex
-00002b34 xQueueCreateCountingSemaphore
-00002b70 xQueueGenericSend
-00002cf8 xQueueGenericSendFromISR
-00002dc4 xQueueGenericReceive
-00002ff0 xQueueReceiveFromISR
-000030bc uxQueueMessagesWaiting
-000030e0 uxQueueMessagesWaitingFromISR
-00003100 vQueueDelete
-000033ec xQueueIsQueueEmptyFromISR
-00003458 xQueueIsQueueFullFromISR
-00003510 skip_white
-00003544 proc_cmd_line
-00003968 cmd_opchar_check
-000039e4 cmd_num_suffix
-00003ab4 cmd_do_stamp
-00003b38 cmd_do_rw_short
-00003bd8 cmd_do_rw_int
-00003c78 cmd_do_rw_long
-00003d18 cmd_opchar_replong
-00003da0 cmd_do_help
-00003fa8 pxPortInitialiseStack
-00004488 xPortStartScheduler
-0000449c vPortEndScheduler
-000044a0 vPortEnterCritical
-000044b8 vPortExitCritical
-000045e0 _c_int00
-00004b88 sciInit
-00004c5c sciSetFunctional
-00004c7c sciSetBaudrate
-00004cfc sciIsTxReady
-00004d18 sciSendByte
-00004d48 sciSend
-00004e5c sciIsRxReady
-00004e78 sciRxError
-00004ea8 sciReceiveByte
-00004ed0 sciReceive
-00004f58 sciEnableLoopback
-00004f8c sciDisableLoopback
-00004fa8 sciEnableNotification
-00005010 sciDisableNotification
-000050c8 esmInit
-000051f4 esmError
-00005210 esmEnableError
-0000523c esmDisableError
-00005268 esmTriggerErrorPinReset
-00005278 esmActivateNormalOperation
-00005288 esmEnableInterrupt
-000052b4 esmDisableInterrupt
-000052e0 esmSetInterruptLevel
-00005364 esmClearStatus
-000053a4 esmClearStatusBuffer
-000053d0 esmSetCounterPreloadValue
-000053f0 esmGetStatus
-00005454 esmGetStatusBuffer
-00005574 cmd_ed_line_buf
-0000568c cmd_io_line_putc
-000056ac cmd_io_line_out
-000057a4 cmd_io_line_in
-0000587c cmd_io_line_rdline
-000058d0 initIoBuffer
-00005930 print
-00005948 read
-00005960 genericRead
-000059a8 genericPrint
-00005ae8 clearInputBuffer
-00005af8 clearOutputBuffer
-00005b08 clearBuffer
-00005b50 tisci_putc
-00005b8c tisci_getc
-00005bbc tisci_write
-00005bfc tisci_read
-00005c8c sciHighLevelInterrupt
-00005e24 sciLowLevelInterrupt
-00006010 _coreInitRegisters_
-00006110 _coreInitStackPointer_
-0000615c _getCPSRValue_
-00006164 _gotoCPUIdle_
-00006178 _coreEnableVfp_
-00006190 _coreEnableEventBusExport_
-000061a8 _coreDisableEventBusExport_
-000061c0 _coreEnableRamEcc_
-000061d8 _coreDisableRamEcc_
-000061f0 _coreEnableFlashEcc_
-0000620c _coreDisableFlashEcc_
-00006224 _coreEnableIrqVicOffset_
-0000623c _coreGetDataFault_
-00006244 _coreClearDataFault_
-00006258 _coreGetInstructionFault_
-00006260 _coreClearInstructionFault_
-00006274 _coreGetDataFaultAddress_
-0000627c _coreClearDataFaultAddress_
-00006290 _coreGetInstructionFaultAddress_
-00006298 _coreClearInstructionFaultAddress_
-000062ac _coreGetAuxiliaryDataFault_
-000062b4 _coreClearAuxiliaryDataFault_
-000062c8 _coreGetAuxiliaryInstructionFault_
-000062d0 _coreClearAuxiliaryInstructionFault_
-000062e4 _disable_interrupt_
-000062ec _disable_FIQ_interrupt_
-000062f4 _disable_IRQ_interrupt_
-000062fc _enable_interrupt_
-00006304 _esmCcmErrorsClear_
-0000638c __TI_PINIT_Base
-00006390 __TI_PINIT_Limit
-00006394 setupPLL
-000063c8 trimLPO
-00006410 setupFlash
-00006450 periphInit
-000064a8 mapClocks
-00006580 systemInit
-0000660c systemPowerDown
-0000669c muxInit
-0000699c i2str
-00006c54 cmd_do_testopchar
-00006d28 cmd_do_testparam
-00006d9c cmd_do_testerror
-00006db8 cmd_do_test
-00006df0 cmd_do_testcmdio
-00006ef0 vListInitialise
-00006f48 vListInitialiseItem
-00006f64 vListInsertEnd
-00006fe8 vListInsert
-000070ac vListRemove
-00007130 esmHighInterrupt
-00007274 esmLowInterrupt
-00007394 cmd_io_puts
-00007428 cmd_io_write_bychar
-000074a0 cmd_io_read_bychar
-00007524 initCmdProc
-00007644 processCmd
-000076a4 vPortStartFirstTask
-000076d8 vPortYieldProcessor
-00007760 vPreemptiveTick
-000077fc vPortYield
-0000784c cmd_processor_run
-00007960 pvPortMalloc
-00007a08 vPortFree
-00007a18 vPortInitialiseBlocks
-00007a28 xPortGetFreeHeapSize
-00007a48 _dabort
-00007b09 __aeabi_memcpy
-00007b09 __aeabi_memcpy4
-00007b09 __aeabi_memcpy8
-00007b09 memcpy
-00007ba4 esmGroup1Notification
-00007bb0 esmGroup2Notification
-00007bbc memoryPort0TestFailNotification
-00007bd4 memoryPort1TestFailNotification
-00007bec sciNotification
-00007c2d __aeabi_memclr
-00007c2d __aeabi_memclr4
-00007c2d __aeabi_memclr8
-00007c2f __aeabi_memset
-00007c2f __aeabi_memset4
-00007c2f __aeabi_memset8
-00007c35 memset
-00007d04 __aeabi_uidivmod
-00007d59 atoi
-00007da9 atol
-00007df9 copy_in
-00007e44 main
-00007e8d C$$EXIT
-00007e91 abort
-00007e99 exit
-00007ed1 strncpy
-00007f01 strncmp
-00007f29 _register_unlock
-00007f2f _register_lock
-00007f35 _nop
-00007f41 strchr
-00007f57 strlen
-00007f6b __TI_zero_init
-00007f7d isalnum
-00007f8d isdigit
-00007f9d isspace
-00007fad strcpy
-00007fbd __TI_decompress_none
-00007fcb __TI_decompress_rle24
-00007fd0 phantomInterrupt
-000084dc cmd_des_help
-000084f4 cmd_des_val
-0000850c cmd_des_valro
-00008524 cmd_des_valwo
-0000853c cmd_des_opchar_test
-00008554 cmd_des_testio
-0000856c cmd_des_error
-00008584 cmd_des_param
-0000859c cmd_des_opchar_testro
-000085b4 cmd_des_test
-000085cc cmd_des_prefix
-000085e4 cmd_des_num
-000085fc cmd_des_char
-00008614 cmd_des_charmid
-0000862c cmd_des_hiddedn
-00008664 _ctypes_
-000087ec cmd_io_std_line
-000088a4 __TI_Handler_Table_Base
-000088b0 __TI_Handler_Table_Limit
-000088b8 __TI_CINIT_Base
-000088c8 __TI_CINIT_Limit
+00000030 canInit
+000028fc canTransmit
+000029e0 canGetData
+00002b10 canIsTxMessagePending
+00002b6c canIsRxMessageArrived
+00002bc8 canIsMessageBoxValid
+00002c24 canGetLastError
+00002c48 canGetErrorLevel
+00002c6c canEnableErrorNotification
+00002c8c canDisableErrorNotification
+00002cac canIoSetDirection
+00002ce4 canIoSetPort
+00002d1c canIoTxGetBit
+00002d38 canIoRxGetBit
+00002d6c ccmSelfCheck
+00002e50 ccmFail
+00002e84 _memoryInit_
+00002ec8 stcSelfCheck
+00002f70 cpuSelfTest
+00002ff0 pbistSelfCheck
+0000312c pbistSelfCheckFail
+00003130 pbistRun
+00003208 pbistStop
+00003238 pbistIsTestCompleted
+00003254 pbistIsTestPassed
+00003290 pbistPortTestStatus
+000032ec efcCheck
+00003348 efcStuckZeroTest
+000033fc efcSelfTest
+00003424 checkefcSelfTest
+000034bc efcClass1Error
+000034c0 efcClass2Error
+000034c4 fmcBus2Check
+00003500 fmcECCcheck
+00003598 fmcClass1Error
+0000359c fmcClass2Error
+000035a0 checkB0RAMECC
+000036c4 checkB1RAMECC
+000037dc tcramClass1Error
+000037e0 tcramClass2Error
+000037e4 checkFlashECC
+000038a4 flashClass1Error
+000038a8 flashClass2Error
+000038ac custom_dabort
+000038b0 stcSelfCheckFail
+000038b4 cpuSelfTestFail
+000038b8 vimParityCheck
+0000392c dmaParityCheck
+000039a0 het1ParityCheck
+00003a08 htu1ParityCheck
+00003a7c het2ParityCheck
+00003b00 htu2ParityCheck
+00003b74 adc1ParityCheck
+00003be0 adc2ParityCheck
+00003c4c can1ParityCheck
+00003ccc can2ParityCheck
+00003d5c can3ParityCheck
+00003df0 mibspi1ParityCheck
+00003ed8 mibspi3ParityCheck
+00003fd0 mibspi5ParityCheck
+00004234 xTaskGenericCreate
+00004434 vTaskDelayUntil
+00004530 vTaskDelay
+00004598 uxTaskPriorityGet
+000045dc vTaskPrioritySet
+00004778 vTaskSuspend
+00004850 xTaskIsTaskSuspended
+000048e4 vTaskResume
+000049a8 vTaskStartScheduler
+00004a24 vTaskEndScheduler
+00004a40 vTaskSuspendAll
+00004a54 xTaskResumeAll
+00004bc4 xTaskGetTickCount
+00004be4 xTaskGetTickCountFromISR
+00004c08 uxTaskGetNumberOfTasks
+00004c1c vTaskIncrementTick
+00004df4 vTaskSwitchContext
+00004ebc vTaskPlaceOnEventList
+00004f30 xTaskRemoveFromEventList
+00005008 vTaskSetTimeOutState
+00005038 xTaskCheckForTimeOut
+00005110 vTaskMissedYield
+000053e8 uxTaskGetStackHighWaterMark
+00005438 xTaskGetCurrentTaskHandle
+00005458 xTaskGetSchedulerState
+000054a8 vTaskPriorityInherit
+000055ac vTaskPriorityDisinherit
+00005694 xQueueCreate
+000057c4 xQueueCreateMutex
+00005880 xQueueCreateCountingSemaphore
+000058bc xQueueGenericSend
+00005a44 xQueueGenericSendFromISR
+00005b10 xQueueGenericReceive
+00005d3c xQueueReceiveFromISR
+00005e08 uxQueueMessagesWaiting
+00005e2c uxQueueMessagesWaitingFromISR
+00005e4c vQueueDelete
+00006138 xQueueIsQueueEmptyFromISR
+000061a4 xQueueIsQueueFullFromISR
+0000625c skip_white
+00006290 proc_cmd_line
+000066b4 cmd_opchar_check
+00006730 cmd_num_suffix
+00006800 cmd_do_stamp
+00006884 cmd_do_rw_short
+00006924 cmd_do_rw_int
+000069c4 cmd_do_rw_long
+00006a64 cmd_opchar_replong
+00006aec cmd_do_help
+00006cf4 pxPortInitialiseStack
+000071d4 xPortStartScheduler
+000071e8 vPortEndScheduler
+000071ec vPortEnterCritical
+00007204 vPortExitCritical
+0000732c _c_int00
+000078d8 sciInit
+000079ac sciSetFunctional
+000079cc sciSetBaudrate
+00007a4c sciIsTxReady
+00007a68 sciSendByte
+00007a98 sciSend
+00007bac sciIsRxReady
+00007bc8 sciRxError
+00007bf8 sciReceiveByte
+00007c20 sciReceive
+00007ca8 sciEnableLoopback
+00007cdc sciDisableLoopback
+00007cf8 sciEnableNotification
+00007d60 sciDisableNotification
+00007e18 esmInit
+00007f44 esmError
+00007f60 esmEnableError
+00007f8c esmDisableError
+00007fb8 esmTriggerErrorPinReset
+00007fc8 esmActivateNormalOperation
+00007fd8 esmEnableInterrupt
+00008004 esmDisableInterrupt
+00008030 esmSetInterruptLevel
+000080b4 esmClearStatus
+000080f4 esmClearStatusBuffer
+00008120 esmSetCounterPreloadValue
+00008140 esmGetStatus
+000081a4 esmGetStatusBuffer
+00008254 cmd_do_testcanloopback
+00008380 cmd_do_testopchar
+00008454 cmd_do_testparam
+000084c8 cmd_do_testerror
+000084e4 cmd_do_test
+0000851c cmd_do_testcmdio
+000086e8 cmd_ed_line_buf
+00008800 cmd_io_line_putc
+00008820 cmd_io_line_out
+00008918 cmd_io_line_in
+000089f0 cmd_io_line_rdline
+00008a44 initIoBuffer
+00008aa4 print
+00008abc read
+00008ad4 genericRead
+00008b1c genericPrint
+00008c5c clearInputBuffer
+00008c6c clearOutputBuffer
+00008c7c clearBuffer
+00008cc4 tisci_putc
+00008d00 tisci_getc
+00008d30 tisci_write
+00008d70 tisci_read
+00008e00 sciHighLevelInterrupt
+00008f98 sciLowLevelInterrupt
+00009184 _coreInitRegisters_
+00009284 _coreInitStackPointer_
+000092d0 _getCPSRValue_
+000092d8 _gotoCPUIdle_
+000092ec _coreEnableVfp_
+00009304 _coreEnableEventBusExport_
+0000931c _coreDisableEventBusExport_
+00009334 _coreEnableRamEcc_
+0000934c _coreDisableRamEcc_
+00009364 _coreEnableFlashEcc_
+00009380 _coreDisableFlashEcc_
+00009398 _coreEnableIrqVicOffset_
+000093b0 _coreGetDataFault_
+000093b8 _coreClearDataFault_
+000093cc _coreGetInstructionFault_
+000093d4 _coreClearInstructionFault_
+000093e8 _coreGetDataFaultAddress_
+000093f0 _coreClearDataFaultAddress_
+00009404 _coreGetInstructionFaultAddress_
+0000940c _coreClearInstructionFaultAddress_
+00009420 _coreGetAuxiliaryDataFault_
+00009428 _coreClearAuxiliaryDataFault_
+0000943c _coreGetAuxiliaryInstructionFault_
+00009444 _coreClearAuxiliaryInstructionFault_
+00009458 _disable_interrupt_
+00009460 _disable_FIQ_interrupt_
+00009468 _disable_IRQ_interrupt_
+00009470 _enable_interrupt_
+00009478 _esmCcmErrorsClear_
+00009500 __TI_PINIT_Base
+00009504 __TI_PINIT_Limit
+00009508 setupPLL
+0000953c trimLPO
+00009584 setupFlash
+000095c4 periphInit
+0000961c mapClocks
+000096f4 systemInit
+00009780 systemPowerDown
+00009810 muxInit
+00009b10 can1HighLevelInterrupt
+00009bcc can1LowLevelInterrupt
+00009c68 can2HighLevelInterrupt
+00009d24 can2LowLevelInterrupt
+00009df0 i2str
+0000a0a8 vListInitialise
+0000a100 vListInitialiseItem
+0000a11c vListInsertEnd
+0000a1a0 vListInsert
+0000a264 vListRemove
+0000a2e8 esmHighInterrupt
+0000a42c esmLowInterrupt
+0000a54c cmd_io_puts
+0000a5e0 cmd_io_write_bychar
+0000a658 cmd_io_read_bychar
+0000a6dc initCmdProc
+0000a7fc processCmd
+0000a85c vPortStartFirstTask
+0000a890 vPortYieldProcessor
+0000a918 vPreemptiveTick
+0000a9b4 vPortYield
+0000aa04 cmd_processor_run
+0000ab18 esmGroup1Notification
+0000ab24 esmGroup2Notification
+0000ab30 memoryPort0TestFailNotification
+0000ab48 memoryPort1TestFailNotification
+0000ab60 canErrorNotification
+0000ab84 canMessageNotification
+0000abec sciNotification
+0000ac38 pvPortMalloc
+0000ace0 vPortFree
+0000acf0 vPortInitialiseBlocks
+0000ad00 xPortGetFreeHeapSize
+0000ad20 _dabort
+0000ade1 __aeabi_memcpy
+0000ade1 __aeabi_memcpy4
+0000ade1 __aeabi_memcpy8
+0000ade1 memcpy
+0000ae7d __aeabi_memclr
+0000ae7d __aeabi_memclr4
+0000ae7d __aeabi_memclr8
+0000ae7f __aeabi_memset
+0000ae7f __aeabi_memset4
+0000ae7f __aeabi_memset8
+0000ae85 memset
+0000aef4 main
+0000afb8 __aeabi_uidivmod
+0000b00d atoi
+0000b05d atol
+0000b0ad copy_in
+0000b0f9 C$$EXIT
+0000b0fd abort
+0000b105 exit
+0000b13d strncpy
+0000b16d strncmp
+0000b195 _register_unlock
+0000b19b _register_lock
+0000b1a1 _nop
+0000b1ad strchr
+0000b1c3 strlen
+0000b1d7 __TI_zero_init
+0000b1e9 isalnum
+0000b1f9 isdigit
+0000b209 isspace
+0000b219 strcpy
+0000b229 __TI_decompress_none
+0000b237 __TI_decompress_rle24
+0000b23c phantomInterrupt
+0000b788 cmd_des_testcanloopback
+0000b7a0 cmd_des_help
+0000b7b8 cmd_des_val
+0000b7d0 cmd_des_valro
+0000b7e8 cmd_des_valwo
+0000b800 cmd_des_opchar_test
+0000b818 cmd_des_testio
+0000b830 cmd_des_error
+0000b848 cmd_des_param
+0000b860 cmd_des_opchar_testro
+0000b878 cmd_des_test
+0000b890 cmd_des_prefix
+0000b8a8 cmd_des_num
+0000b8c0 cmd_des_char
+0000b8d8 cmd_des_charmid
+0000b8f0 cmd_des_hiddedn
+0000b930 _ctypes_
+0000bad8 cmd_io_std_line
+0000bb98 __TI_Handler_Table_Base
+0000bba4 __TI_Handler_Table_Limit
+0000bbb0 __TI_CINIT_Base
+0000bbc0 __TI_CINIT_Limit
0800555c ed_line_in_std
080055b0 ed_line_out_std
08005608 g_sciTransfer
0800562c inBuffer
08005638 processCmdHandler
0800563c prompt
-08005640 val
-08005644 cmd_list_1
-0800565c cmd_list_2
-0800567c cmd_list_main
-0800569c cmd_list
-080056a0 ed_line_buf_in_std
-080056b8 ed_line_buf_out_std
-080056d0 pxCurrentTCB
-08005700 cmd_io_buf
-0800571c _lock
-08005720 _unlock
-08005724 _cleanup_ptr
-08005728 _dtors_ptr
-08005730 ulCriticalNesting
+08005640 canMsgReceived
+08005644 val
+08005648 cmd_list_1
+08005660 cmd_list_2
+08005680 cmd_list
+08005684 ed_line_buf_in_std
+0800569c ed_line_buf_out_std
+080056b4 pxCurrentTCB
+080056e4 cmd_list_main
+08005708 cmd_io_buf
+08005724 _lock
+08005728 _unlock
+0800572c _cleanup_ptr
+08005730 _dtors_ptr
+08005738 ulCriticalNesting
ffffffff __binit__
ffffffff __c_args__
ffffffff binit
-[300 symbols]
+[323 symbols]
--- /dev/null
+/** @file can.c \r
+* @brief CAN Driver Source File\r
+* @date 15.Mar.2012\r
+* @version 03.01.00\r
+*\r
+* This file contains:\r
+* - API Funcions\r
+* - Interrupt Handlers\r
+* .\r
+* which are relevant for the CAN driver.\r
+*/\r
+\r
+/* (c) Texas Instruments 2009-2012, All rights reserved. */\r
+\r
+\r
+/* USER CODE BEGIN (0) */\r
+/* USER CODE END */\r
+\r
+\r
+/* Include Files */\r
+\r
+#include "can.h"\r
+\r
+/* USER CODE BEGIN (1) */\r
+/* USER CODE END */\r
+\r
+\r
+/* Global and Static Variables */\r
+\r
+#ifndef __little_endian__\r
+ static const uint32_t s_canByteOrder[] = {3U, 2U, 1U, 0U, 7U, 6U, 5U, 4U};\r
+#endif\r
+\r
+/* USER CODE BEGIN (2) */\r
+/* USER CODE END */\r
+\r
+\r
+/** @fn void canInit(void)\r
+* @brief Initializes CAN Driver\r
+*\r
+* This function initializes the CAN driver.\r
+*\r
+*/\r
+\r
+/* USER CODE BEGIN (3) */\r
+/* USER CODE END */\r
+\r
+void canInit(void)\r
+{\r
+/* USER CODE BEGIN (4) */\r
+/* USER CODE END */\r
+ /** @b Initialize @b CAN1: */\r
+\r
+ /** - Setup control register\r
+ * - Disable automatic wakeup on bus activity\r
+ * - Local power down mode disabled\r
+ * - Disable DMA request lines\r
+ * - Enable global Interrupt Line 0 and 1\r
+ * - Disable debug mode\r
+ * - Release from software reset\r
+ * - Enable/Disable parity or ECC\r
+ * - Enable/Disable auto bus on timer\r
+ * - Setup message completion before entering debug state\r
+ * - Setup normal operation mode\r
+ * - Request write access to the configuration registers\r
+ * - Setup automatic retransmission of messages\r
+ * - Disable error interrups\r
+ * - Disable status interrupts\r
+ * - Enter initialization mode\r
+ */\r
+ canREG1->CTL = 0x00000000U \r
+ | 0x00000000U \r
+ | 0x00000005U \r
+ | 0x000200043U;\r
+\r
+ /** - Clear all pending error flags and reset current status */\r
+ canREG1->ES = 0x0000031FU;\r
+\r
+ /** - Assign interrupt level for messages */\r
+ canREG1->INTMUXx[0U] = 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U;\r
+\r
+ canREG1->INTMUXx[1U] = 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U;\r
+\r
+ /** - Setup auto bus on timer pewriod */\r
+ canREG1->ABOTR = 0U;\r
+\r
+ /** - Initialize message 1 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG1->IF1STAT & 0x80);\r
+\r
+ canREG1->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1ARB = 0x80000000U | 0x40000000U | 0x20000000U | ((1U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1MCTL = 0x00001080U | 0x00000C00U | 8U;\r
+ canREG1->IF1CMD = 0xF8;\r
+ canREG1->IF1NO = 1;\r
+\r
+ /** - Initialize message 2 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG1->IF2STAT & 0x80);\r
+\r
+ canREG1->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((2U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF2CMD = 0xF8;\r
+ canREG1->IF2NO = 2;\r
+\r
+ /** - Initialize message 3 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG1->IF1STAT & 0x80);\r
+\r
+ canREG1->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((3U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF1CMD = 0xF8;\r
+ canREG1->IF1NO = 3;\r
+\r
+ /** - Initialize message 4 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG1->IF2STAT & 0x80);\r
+\r
+ canREG1->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((4U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF2CMD = 0xF8;\r
+ canREG1->IF2NO = 4;\r
+\r
+ /** - Initialize message 5 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG1->IF1STAT & 0x80);\r
+\r
+ canREG1->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((5U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF1CMD = 0xF8;\r
+ canREG1->IF1NO = 5;\r
+\r
+ /** - Initialize message 6 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG1->IF2STAT & 0x80);\r
+\r
+ canREG1->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((6U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF2CMD = 0xF8;\r
+ canREG1->IF2NO = 6;\r
+\r
+ /** - Initialize message 7 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG1->IF1STAT & 0x80);\r
+\r
+ canREG1->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((7U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF1CMD = 0xF8;\r
+ canREG1->IF1NO = 7;\r
+\r
+ /** - Initialize message 8 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG1->IF2STAT & 0x80);\r
+\r
+ canREG1->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((8U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF2CMD = 0xF8;\r
+ canREG1->IF2NO = 8;\r
+\r
+ /** - Initialize message 9 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG1->IF1STAT & 0x80);\r
+\r
+ canREG1->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((9U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF1CMD = 0xF8;\r
+ canREG1->IF1NO = 9;\r
+\r
+ /** - Initialize message 10 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG1->IF2STAT & 0x80);\r
+\r
+ canREG1->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((10U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF2CMD = 0xF8;\r
+ canREG1->IF2NO = 10;\r
+\r
+ /** - Initialize message 11 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG1->IF1STAT & 0x80);\r
+\r
+ canREG1->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((11U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF1CMD = 0xF8;\r
+ canREG1->IF1NO = 11;\r
+\r
+ /** - Initialize message 12 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG1->IF2STAT & 0x80);\r
+\r
+ canREG1->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((12U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF2CMD = 0xF8;\r
+ canREG1->IF2NO = 12;\r
+\r
+ /** - Initialize message 13 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG1->IF1STAT & 0x80);\r
+\r
+ canREG1->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((13U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF1CMD = 0xF8;\r
+ canREG1->IF1NO = 13;\r
+\r
+ /** - Initialize message 14 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG1->IF2STAT & 0x80);\r
+\r
+ canREG1->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((14U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF2CMD = 0xF8;\r
+ canREG1->IF2NO = 14;\r
+\r
+ /** - Initialize message 15 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG1->IF1STAT & 0x80);\r
+\r
+ canREG1->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((15U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF1CMD = 0xF8;\r
+ canREG1->IF1NO = 15;\r
+\r
+ /** - Initialize message 16 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG1->IF2STAT & 0x80);\r
+\r
+ canREG1->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((16U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF2CMD = 0xF8;\r
+ canREG1->IF2NO = 16;\r
+\r
+ /** - Initialize message 17 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG1->IF1STAT & 0x80);\r
+\r
+ canREG1->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((17U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF1CMD = 0xF8;\r
+ canREG1->IF1NO = 17;\r
+\r
+ /** - Initialize message 18 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG1->IF2STAT & 0x80);\r
+\r
+ canREG1->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((18U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF2CMD = 0xF8;\r
+ canREG1->IF2NO = 18;\r
+\r
+ /** - Initialize message 19 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG1->IF1STAT & 0x80);\r
+\r
+ canREG1->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((19U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF1CMD = 0xF8;\r
+ canREG1->IF1NO = 19;\r
+\r
+ /** - Initialize message 20 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG1->IF2STAT & 0x80);\r
+\r
+ canREG1->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((20U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF2CMD = 0xF8;\r
+ canREG1->IF2NO = 20;\r
+\r
+ /** - Initialize message 21 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG1->IF1STAT & 0x80);\r
+\r
+ canREG1->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((21U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF1CMD = 0xF8;\r
+ canREG1->IF1NO = 21;\r
+\r
+ /** - Initialize message 22 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG1->IF2STAT & 0x80);\r
+\r
+ canREG1->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((22U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF2CMD = 0xF8;\r
+ canREG1->IF2NO = 22;\r
+\r
+ /** - Initialize message 23 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG1->IF1STAT & 0x80);\r
+\r
+ canREG1->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((23U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF1CMD = 0xF8;\r
+ canREG1->IF1NO = 23;\r
+\r
+ /** - Initialize message 24 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG1->IF2STAT & 0x80);\r
+\r
+ canREG1->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((24U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF2CMD = 0xF8;\r
+ canREG1->IF2NO = 24;\r
+\r
+ /** - Initialize message 25 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG1->IF1STAT & 0x80);\r
+\r
+ canREG1->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((25U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF1CMD = 0xF8;\r
+ canREG1->IF1NO = 25;\r
+\r
+ /** - Initialize message 26 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG1->IF2STAT & 0x80);\r
+\r
+ canREG1->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((26U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF2CMD = 0xF8;\r
+ canREG1->IF2NO = 26;\r
+\r
+ /** - Initialize message 27 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG1->IF1STAT & 0x80);\r
+\r
+ canREG1->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((27U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF1CMD = 0xF8;\r
+ canREG1->IF1NO = 27;\r
+\r
+ /** - Initialize message 28 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG1->IF2STAT & 0x80);\r
+\r
+ canREG1->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((28U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF2CMD = 0xF8;\r
+ canREG1->IF2NO = 28;\r
+\r
+ /** - Initialize message 29 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG1->IF1STAT & 0x80);\r
+\r
+ canREG1->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((29U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF1CMD = 0xF8;\r
+ canREG1->IF1NO = 29;\r
+\r
+ /** - Initialize message 30 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG1->IF2STAT & 0x80);\r
+\r
+ canREG1->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((30U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF2CMD = 0xF8;\r
+ canREG1->IF2NO = 30;\r
+\r
+ /** - Initialize message 31 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG1->IF1STAT & 0x80);\r
+\r
+ canREG1->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((31U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF1CMD = 0xF8;\r
+ canREG1->IF1NO = 31;\r
+\r
+ /** - Initialize message 32 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG1->IF2STAT & 0x80);\r
+\r
+ canREG1->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((32U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF2CMD = 0xF8;\r
+ canREG1->IF2NO = 32;\r
+\r
+ /** - Initialize message 33 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG1->IF1STAT & 0x80);\r
+\r
+ canREG1->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((33U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF1CMD = 0xF8;\r
+ canREG1->IF1NO = 33;\r
+\r
+ /** - Initialize message 34 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG1->IF2STAT & 0x80);\r
+\r
+ canREG1->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((34U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF2CMD = 0xF8;\r
+ canREG1->IF2NO = 34;\r
+\r
+ /** - Initialize message 35 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG1->IF1STAT & 0x80);\r
+\r
+ canREG1->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((35U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF1CMD = 0xF8;\r
+ canREG1->IF1NO = 35;\r
+\r
+ /** - Initialize message 36 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG1->IF2STAT & 0x80);\r
+\r
+ canREG1->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((36U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF2CMD = 0xF8;\r
+ canREG1->IF2NO = 36;\r
+\r
+ /** - Initialize message 37 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG1->IF1STAT & 0x80);\r
+\r
+ canREG1->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((37U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF1CMD = 0xF8;\r
+ canREG1->IF1NO = 37;\r
+\r
+ /** - Initialize message 38 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG1->IF2STAT & 0x80);\r
+\r
+ canREG1->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((38U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF2CMD = 0xF8;\r
+ canREG1->IF2NO = 38;\r
+\r
+ /** - Initialize message 39 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG1->IF1STAT & 0x80);\r
+\r
+ canREG1->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((39U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF1CMD = 0xF8;\r
+ canREG1->IF1NO = 39;\r
+\r
+ /** - Initialize message 40 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG1->IF2STAT & 0x80);\r
+\r
+ canREG1->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((40U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF2CMD = 0xF8;\r
+ canREG1->IF2NO = 40;\r
+\r
+ /** - Initialize message 41 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG1->IF1STAT & 0x80);\r
+\r
+ canREG1->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((41U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF1CMD = 0xF8;\r
+ canREG1->IF1NO = 41;\r
+\r
+ /** - Initialize message 42 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG1->IF2STAT & 0x80);\r
+\r
+ canREG1->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((42U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF2CMD = 0xF8;\r
+ canREG1->IF2NO = 42;\r
+\r
+ /** - Initialize message 43 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG1->IF1STAT & 0x80);\r
+\r
+ canREG1->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((43U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF1CMD = 0xF8;\r
+ canREG1->IF1NO = 43;\r
+\r
+ /** - Initialize message 44 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG1->IF2STAT & 0x80);\r
+\r
+ canREG1->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((44U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF2CMD = 0xF8;\r
+ canREG1->IF2NO = 44;\r
+\r
+ /** - Initialize message 45 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG1->IF1STAT & 0x80);\r
+\r
+ canREG1->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((45U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF1CMD = 0xF8;\r
+ canREG1->IF1NO = 45;\r
+\r
+ /** - Initialize message 46 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG1->IF2STAT & 0x80);\r
+\r
+ canREG1->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((46U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF2CMD = 0xF8;\r
+ canREG1->IF2NO = 46;\r
+\r
+ /** - Initialize message 47 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG1->IF1STAT & 0x80);\r
+\r
+ canREG1->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((47U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF1CMD = 0xF8;\r
+ canREG1->IF1NO = 47;\r
+\r
+ /** - Initialize message 48 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG1->IF2STAT & 0x80);\r
+\r
+ canREG1->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((48U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF2CMD = 0xF8;\r
+ canREG1->IF2NO = 48;\r
+\r
+ /** - Initialize message 49 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG1->IF1STAT & 0x80);\r
+\r
+ canREG1->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((49U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF1CMD = 0xF8;\r
+ canREG1->IF1NO = 49;\r
+\r
+ /** - Initialize message 50 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG1->IF2STAT & 0x80);\r
+\r
+ canREG1->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((50U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF2CMD = 0xF8;\r
+ canREG1->IF2NO = 50;\r
+\r
+ /** - Initialize message 51 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG1->IF1STAT & 0x80);\r
+\r
+ canREG1->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((51U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF1CMD = 0xF8;\r
+ canREG1->IF1NO = 51;\r
+\r
+ /** - Initialize message 52 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG1->IF2STAT & 0x80);\r
+\r
+ canREG1->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((52U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF2CMD = 0xF8;\r
+ canREG1->IF2NO = 52;\r
+\r
+ /** - Initialize message 53 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG1->IF1STAT & 0x80);\r
+\r
+ canREG1->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((53U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF1CMD = 0xF8;\r
+ canREG1->IF1NO = 53;\r
+\r
+ /** - Initialize message 54 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG1->IF2STAT & 0x80);\r
+\r
+ canREG1->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((54U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF2CMD = 0xF8;\r
+ canREG1->IF2NO = 54;\r
+\r
+ /** - Initialize message 55 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG1->IF1STAT & 0x80);\r
+\r
+ canREG1->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((55U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF1CMD = 0xF8;\r
+ canREG1->IF1NO = 55;\r
+\r
+ /** - Initialize message 56 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG1->IF2STAT & 0x80);\r
+\r
+ canREG1->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((56U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF2CMD = 0xF8;\r
+ canREG1->IF2NO = 56;\r
+\r
+ /** - Initialize message 57 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG1->IF1STAT & 0x80);\r
+\r
+ canREG1->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((57U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF1CMD = 0xF8;\r
+ canREG1->IF1NO = 57;\r
+\r
+ /** - Initialize message 58 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG1->IF2STAT & 0x80);\r
+\r
+ canREG1->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((58U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF2CMD = 0xF8;\r
+ canREG1->IF2NO = 58;\r
+\r
+ /** - Initialize message 59 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG1->IF1STAT & 0x80);\r
+\r
+ canREG1->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((59U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF1CMD = 0xF8;\r
+ canREG1->IF1NO = 59;\r
+\r
+ /** - Initialize message 60 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG1->IF2STAT & 0x80);\r
+\r
+ canREG1->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((60U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF2CMD = 0xF8;\r
+ canREG1->IF2NO = 60;\r
+\r
+ /** - Initialize message 61 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG1->IF1STAT & 0x80);\r
+\r
+ canREG1->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((61U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF1CMD = 0xF8;\r
+ canREG1->IF1NO = 61;\r
+\r
+ /** - Initialize message 62 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG1->IF2STAT & 0x80);\r
+\r
+ canREG1->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((62U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF2CMD = 0xF8;\r
+ canREG1->IF2NO = 62;\r
+\r
+ /** - Initialize message 63 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG1->IF1STAT & 0x80);\r
+\r
+ canREG1->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((63U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF1CMD = 0xF8;\r
+ canREG1->IF1NO = 63;\r
+\r
+ /** - Initialize message 64 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG1->IF2STAT & 0x80);\r
+\r
+ canREG1->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((64U & 0x1FFFFFFFU) << 0U);\r
+ canREG1->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG1->IF2CMD = 0xF8;\r
+ canREG1->IF2NO = 64;\r
+\r
+ /** - Setup IF1 for data transmission \r
+ * - Wait until IF1 is ready for use \r
+ * - Set IF1 control byte\r
+ */\r
+ while (canREG1->IF1STAT & 0x80);\r
+\r
+ canREG1->IF1CMD = 0x87;\r
+\r
+ /** - Setup IF2 for reading data\r
+ * - Wait until IF1 is ready for use \r
+ * - Set IF1 control byte\r
+ */\r
+ while (canREG1->IF2STAT & 0x80);\r
+\r
+ canREG1->IF2CMD = 0x17;\r
+ /** - Setup bit timing \r
+ * - Setup baud rate prescaler extension\r
+ * - Setup TSeg2\r
+ * - Setup TSeg1\r
+ * - Setup sample jump width\r
+ * - Setup baud rate prescaler\r
+ */\r
+ canREG1->BTR = (0U << 16U) |\r
+ ((2U - 1U) << 12U) |\r
+ (((3U + 2U) - 1U) << 8U) |\r
+ ((2U - 1U) << 6U) |\r
+ 19U;\r
+\r
+ /** - CAN1 Port output values */\r
+ canREG1->TIOC = (1 << 18 )\r
+ | (0 << 17 ) \r
+ | (1 << 3 ) \r
+ | (0 << 2 ) \r
+ | (0 << 1 ) \r
+ | (0 ); \r
+ canREG1->RIOC = (1 << 18 ) \r
+ | (0 << 17 ) \r
+ | (1 << 3 ) \r
+ | (0 << 2 )\r
+ | (0 <<1 ) \r
+ | (0 ); \r
+\r
+\r
+ /** - Leave configuration and initialization mode */\r
+ canREG1->CTL &= ~0x00000041U;\r
+\r
+\r
+ /** @b Initialize @b CAN2: */\r
+\r
+ /** - Setup control register\r
+ * - Disable automatic wakeup on bus activity\r
+ * - Local power down mode disabled\r
+ * - Disable DMA request lines\r
+ * - Enable global Interrupt Line 0 and 1\r
+ * - Disable debug mode\r
+ * - Release from software reset\r
+ * - Enable/Disable parity or ECC\r
+ * - Enable/Disable auto bus on timer\r
+ * - Setup message completion before entering debug state\r
+ * - Setup normal operation mode\r
+ * - Request write access to the configuration registers\r
+ * - Setup automatic retransmission of messages\r
+ * - Disable error interrups\r
+ * - Disable status interrupts\r
+ * - Enter initialization mode\r
+ */\r
+ canREG2->CTL = 0x00000000U \r
+ | 0x00000000U \r
+ | 0x00000005U \r
+ | 0x000200043U;\r
+\r
+ /** - Clear all pending error flags and reset current status */\r
+ canREG2->ES = 0x0000031FU;\r
+\r
+\r
+ /** - Assign interrupt level for messages */\r
+ canREG2->INTMUXx[0U] = 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U;\r
+\r
+ canREG2->INTMUXx[1U] = 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U\r
+ | 0x00000000U;\r
+\r
+\r
+ /** - Setup auto bus on timer pewriod */\r
+ canREG2->ABOTR = 0U;\r
+\r
+ /** - Initialize message 1 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG2->IF1STAT & 0x80);\r
+\r
+ canREG2->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1ARB = 0x80000000U | 0x40000000U | 0x00000000U | ((1U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1MCTL = 0x00001080U | 0x00000C00U | 8U;\r
+ canREG2->IF1CMD = 0xF8;\r
+ canREG2->IF1NO = 1;\r
+\r
+ /** - Initialize message 2 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG2->IF2STAT & 0x80);\r
+\r
+ canREG2->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((2U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF2CMD = 0xF8;\r
+ canREG2->IF2NO = 2;\r
+\r
+ /** - Initialize message 3 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG2->IF1STAT & 0x80);\r
+\r
+ canREG2->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((3U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF1CMD = 0xF8;\r
+ canREG2->IF1NO = 3;\r
+\r
+ /** - Initialize message 4 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG2->IF2STAT & 0x80);\r
+\r
+ canREG2->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((4U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF2CMD = 0xF8;\r
+ canREG2->IF2NO = 4;\r
+\r
+ /** - Initialize message 5 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG2->IF1STAT & 0x80);\r
+\r
+ canREG2->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((5U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF1CMD = 0xF8;\r
+ canREG2->IF1NO = 5;\r
+\r
+ /** - Initialize message 6 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG2->IF2STAT & 0x80);\r
+\r
+ canREG2->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((6U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF2CMD = 0xF8;\r
+ canREG2->IF2NO = 6;\r
+\r
+ /** - Initialize message 7 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG2->IF1STAT & 0x80);\r
+\r
+ canREG2->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((7U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF1CMD = 0xF8;\r
+ canREG2->IF1NO = 7;\r
+\r
+ /** - Initialize message 8 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG2->IF2STAT & 0x80);\r
+\r
+ canREG2->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((8U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF2CMD = 0xF8;\r
+ canREG2->IF2NO = 8;\r
+\r
+ /** - Initialize message 9 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG2->IF1STAT & 0x80);\r
+\r
+ canREG2->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((9U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF1CMD = 0xF8;\r
+ canREG2->IF1NO = 9;\r
+\r
+ /** - Initialize message 10 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG2->IF2STAT & 0x80);\r
+\r
+ canREG2->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((10U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF2CMD = 0xF8;\r
+ canREG2->IF2NO = 10;\r
+\r
+ /** - Initialize message 11 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG2->IF1STAT & 0x80);\r
+\r
+ canREG2->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((11U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF1CMD = 0xF8;\r
+ canREG2->IF1NO = 11;\r
+\r
+ /** - Initialize message 12 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG2->IF2STAT & 0x80);\r
+\r
+ canREG2->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((12U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF2CMD = 0xF8;\r
+ canREG2->IF2NO = 12;\r
+\r
+ /** - Initialize message 13 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG2->IF1STAT & 0x80);\r
+\r
+ canREG2->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((13U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF1CMD = 0xF8;\r
+ canREG2->IF1NO = 13;\r
+\r
+ /** - Initialize message 14 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG2->IF2STAT & 0x80);\r
+\r
+ canREG2->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((14U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF2CMD = 0xF8;\r
+ canREG2->IF2NO = 14;\r
+\r
+ /** - Initialize message 15 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG2->IF1STAT & 0x80);\r
+\r
+ canREG2->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((15U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF1CMD = 0xF8;\r
+ canREG2->IF1NO = 15;\r
+\r
+ /** - Initialize message 16 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG2->IF2STAT & 0x80);\r
+\r
+ canREG2->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((16U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF2CMD = 0xF8;\r
+ canREG2->IF2NO = 16;\r
+\r
+ /** - Initialize message 17 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG2->IF1STAT & 0x80);\r
+\r
+ canREG2->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((17U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF1CMD = 0xF8;\r
+ canREG2->IF1NO = 17;\r
+\r
+ /** - Initialize message 18 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG2->IF2STAT & 0x80);\r
+\r
+ canREG2->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((18U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF2CMD = 0xF8;\r
+ canREG2->IF2NO = 18;\r
+\r
+ /** - Initialize message 19 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG2->IF1STAT & 0x80);\r
+\r
+ canREG2->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((19U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF1CMD = 0xF8;\r
+ canREG2->IF1NO = 19;\r
+\r
+ /** - Initialize message 20 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG2->IF2STAT & 0x80);\r
+\r
+ canREG2->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((20U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF2CMD = 0xF8;\r
+ canREG2->IF2NO = 20;\r
+\r
+ /** - Initialize message 21 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG2->IF1STAT & 0x80);\r
+\r
+ canREG2->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((21U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF1CMD = 0xF8;\r
+ canREG2->IF1NO = 21;\r
+\r
+ /** - Initialize message 22 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG2->IF2STAT & 0x80);\r
+\r
+ canREG2->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((22U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF2CMD = 0xF8;\r
+ canREG2->IF2NO = 22;\r
+\r
+ /** - Initialize message 23 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG2->IF1STAT & 0x80);\r
+\r
+ canREG2->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((23U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF1CMD = 0xF8;\r
+ canREG2->IF1NO = 23;\r
+\r
+ /** - Initialize message 24 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG2->IF2STAT & 0x80);\r
+\r
+ canREG2->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((24U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF2CMD = 0xF8;\r
+ canREG2->IF2NO = 24;\r
+\r
+ /** - Initialize message 25 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG2->IF1STAT & 0x80);\r
+\r
+ canREG2->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((25U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF1CMD = 0xF8;\r
+ canREG2->IF1NO = 25;\r
+\r
+ /** - Initialize message 26 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG2->IF2STAT & 0x80);\r
+\r
+ canREG2->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((26U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF2CMD = 0xF8;\r
+ canREG2->IF2NO = 26;\r
+\r
+ /** - Initialize message 27 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG2->IF1STAT & 0x80);\r
+\r
+ canREG2->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((27U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF1CMD = 0xF8;\r
+ canREG2->IF1NO = 27;\r
+\r
+ /** - Initialize message 28 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG2->IF2STAT & 0x80);\r
+\r
+ canREG2->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((28U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF2CMD = 0xF8;\r
+ canREG2->IF2NO = 28;\r
+\r
+ /** - Initialize message 29 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG2->IF1STAT & 0x80);\r
+\r
+ canREG2->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((29U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF1CMD = 0xF8;\r
+ canREG2->IF1NO = 29;\r
+\r
+ /** - Initialize message 30 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG2->IF2STAT & 0x80);\r
+\r
+ canREG2->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((30U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF2CMD = 0xF8;\r
+ canREG2->IF2NO = 30;\r
+\r
+ /** - Initialize message 31 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG2->IF1STAT & 0x80);\r
+\r
+ canREG2->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((31U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF1CMD = 0xF8;\r
+ canREG2->IF1NO = 31;\r
+\r
+ /** - Initialize message 32 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG2->IF2STAT & 0x80);\r
+\r
+ canREG2->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((32U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF2CMD = 0xF8;\r
+ canREG2->IF2NO = 32;\r
+\r
+ /** - Initialize message 33 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG2->IF1STAT & 0x80);\r
+\r
+ canREG2->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((33U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF1CMD = 0xF8;\r
+ canREG2->IF1NO = 33;\r
+\r
+ /** - Initialize message 34 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG2->IF2STAT & 0x80);\r
+\r
+ canREG2->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((34U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF2CMD = 0xF8;\r
+ canREG2->IF2NO = 34;\r
+\r
+ /** - Initialize message 35 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG2->IF1STAT & 0x80);\r
+\r
+ canREG2->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((35U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF1CMD = 0xF8;\r
+ canREG2->IF1NO = 35;\r
+\r
+ /** - Initialize message 36 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG2->IF2STAT & 0x80);\r
+\r
+ canREG2->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((36U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF2CMD = 0xF8;\r
+ canREG2->IF2NO = 36;\r
+\r
+ /** - Initialize message 37 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG2->IF1STAT & 0x80);\r
+\r
+ canREG2->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((37U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF1CMD = 0xF8;\r
+ canREG2->IF1NO = 37;\r
+\r
+ /** - Initialize message 38 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG2->IF2STAT & 0x80);\r
+\r
+ canREG2->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((38U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF2CMD = 0xF8;\r
+ canREG2->IF2NO = 38;\r
+\r
+ /** - Initialize message 39 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG2->IF1STAT & 0x80);\r
+\r
+ canREG2->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((39U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF1CMD = 0xF8;\r
+ canREG2->IF1NO = 39;\r
+\r
+ /** - Initialize message 40 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG2->IF2STAT & 0x80);\r
+\r
+ canREG2->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((40U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF2CMD = 0xF8;\r
+ canREG2->IF2NO = 40;\r
+\r
+ /** - Initialize message 41 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG2->IF1STAT & 0x80);\r
+\r
+ canREG2->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((41U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF1CMD = 0xF8;\r
+ canREG2->IF1NO = 41;\r
+\r
+ /** - Initialize message 42 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG2->IF2STAT & 0x80);\r
+\r
+ canREG2->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((42U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF2CMD = 0xF8;\r
+ canREG2->IF2NO = 42;\r
+\r
+ /** - Initialize message 43 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG2->IF1STAT & 0x80);\r
+\r
+ canREG2->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((43U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF1CMD = 0xF8;\r
+ canREG2->IF1NO = 43;\r
+\r
+ /** - Initialize message 44 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG2->IF2STAT & 0x80);\r
+\r
+ canREG2->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((44U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF2CMD = 0xF8;\r
+ canREG2->IF2NO = 44;\r
+\r
+ /** - Initialize message 45 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG2->IF1STAT & 0x80);\r
+\r
+ canREG2->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((45U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF1CMD = 0xF8;\r
+ canREG2->IF1NO = 45;\r
+\r
+ /** - Initialize message 46 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG2->IF2STAT & 0x80);\r
+\r
+ canREG2->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((46U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF2CMD = 0xF8;\r
+ canREG2->IF2NO = 46;\r
+\r
+ /** - Initialize message 47 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG2->IF1STAT & 0x80);\r
+\r
+ canREG2->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((47U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF1CMD = 0xF8;\r
+ canREG2->IF1NO = 47;\r
+\r
+ /** - Initialize message 48 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG2->IF2STAT & 0x80);\r
+\r
+ canREG2->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((48U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF2CMD = 0xF8;\r
+ canREG2->IF2NO = 48;\r
+\r
+ /** - Initialize message 49 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG2->IF1STAT & 0x80);\r
+\r
+ canREG2->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((49U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF1CMD = 0xF8;\r
+ canREG2->IF1NO = 49;\r
+\r
+ /** - Initialize message 50 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG2->IF2STAT & 0x80);\r
+\r
+ canREG2->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((50U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF2CMD = 0xF8;\r
+ canREG2->IF2NO = 50;\r
+\r
+ /** - Initialize message 51 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG2->IF1STAT & 0x80);\r
+\r
+ canREG2->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((51U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF1CMD = 0xF8;\r
+ canREG2->IF1NO = 51;\r
+\r
+ /** - Initialize message 52 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG2->IF2STAT & 0x80);\r
+\r
+ canREG2->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((52U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF2CMD = 0xF8;\r
+ canREG2->IF2NO = 52;\r
+\r
+ /** - Initialize message 53 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG2->IF1STAT & 0x80);\r
+\r
+ canREG2->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((53U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF1CMD = 0xF8;\r
+ canREG2->IF1NO = 53;\r
+\r
+ /** - Initialize message 54 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG2->IF2STAT & 0x80);\r
+\r
+ canREG2->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((54U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF2CMD = 0xF8;\r
+ canREG2->IF2NO = 54;\r
+\r
+ /** - Initialize message 55 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG2->IF1STAT & 0x80);\r
+\r
+ canREG2->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((55U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF1CMD = 0xF8;\r
+ canREG2->IF1NO = 55;\r
+\r
+ /** - Initialize message 56 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG2->IF2STAT & 0x80);\r
+\r
+ canREG2->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((56U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF2CMD = 0xF8;\r
+ canREG2->IF2NO = 56;\r
+\r
+ /** - Initialize message 57 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG2->IF1STAT & 0x80);\r
+\r
+ canREG2->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((57U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF1CMD = 0xF8;\r
+ canREG2->IF1NO = 57;\r
+\r
+ /** - Initialize message 58 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG2->IF2STAT & 0x80);\r
+\r
+ canREG2->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((58U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF2CMD = 0xF8;\r
+ canREG2->IF2NO = 58;\r
+\r
+ /** - Initialize message 59 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG2->IF1STAT & 0x80);\r
+\r
+ canREG2->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((59U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF1CMD = 0xF8;\r
+ canREG2->IF1NO = 59;\r
+\r
+ /** - Initialize message 60 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG2->IF2STAT & 0x80);\r
+\r
+ canREG2->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((60U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF2CMD = 0xF8;\r
+ canREG2->IF2NO = 60;\r
+\r
+ /** - Initialize message 61 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG2->IF1STAT & 0x80);\r
+\r
+ canREG2->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((61U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF1CMD = 0xF8;\r
+ canREG2->IF1NO = 61;\r
+\r
+ /** - Initialize message 62 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG2->IF2STAT & 0x80);\r
+\r
+ canREG2->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((62U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF2CMD = 0xF8;\r
+ canREG2->IF2NO = 62;\r
+\r
+ /** - Initialize message 63 \r
+ * - Wait until IF1 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF1 control byte\r
+ * - Set IF1 message number\r
+ */\r
+ while (canREG2->IF1STAT & 0x80);\r
+\r
+ canREG2->IF1MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((63U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF1MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF1CMD = 0xF8;\r
+ canREG2->IF1NO = 63;\r
+\r
+ /** - Initialize message 64 \r
+ * - Wait until IF2 is ready for use \r
+ * - Set message mask\r
+ * - Set message control word\r
+ * - Set message arbitration\r
+ * - Set IF2 control byte\r
+ * - Set IF2 message number\r
+ */\r
+ while (canREG2->IF2STAT & 0x80);\r
+\r
+ canREG2->IF2MSK = 0xC0000000U | ((0x000007FFU & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2ARB = 0x00000000U | 0x40000000U | 0x20000000U | ((64U & 0x1FFFFFFFU) << 0U);\r
+ canREG2->IF2MCTL = 0x00001080U | 0x00000000U | 8U;\r
+ canREG2->IF2CMD = 0xF8;\r
+ canREG2->IF2NO = 64;\r
+\r
+ /** - Setup IF1 for data transmission \r
+ * - Wait until IF1 is ready for use \r
+ * - Set IF1 control byte\r
+ */\r
+ while (canREG2->IF1STAT & 0x80);\r
+\r
+ canREG2->IF1CMD = 0x87;\r
+\r
+ /** - Setup IF2 for reading data\r
+ * - Wait until IF1 is ready for use \r
+ * - Set IF1 control byte\r
+ */\r
+ while (canREG2->IF2STAT & 0x80);\r
+\r
+ canREG2->IF2CMD = 0x17;\r
+ /** - Setup bit timing \r
+ * - Setup baud rate prescaler extension\r
+ * - Setup TSeg2\r
+ * - Setup TSeg1\r
+ * - Setup sample jump width\r
+ * - Setup baud rate prescaler\r
+ */\r
+ canREG2->BTR = (0U << 16U) |\r
+ ((2U - 1U) << 12U) |\r
+ (((3U + 2U) - 1U) << 8U) |\r
+ ((2U - 1U) << 6U) |\r
+ 19U;\r
+\r
+ /** - CAN2 Port output values */\r
+ canREG2->TIOC = (1 << 18 )\r
+ | (0 << 17 ) \r
+ | (1 << 3 ) \r
+ | (0 << 2 ) \r
+ | (0 << 1 ) \r
+ | (0 ); \r
+ canREG2->RIOC = (1 << 18 ) \r
+ | (0 << 17 ) \r
+ | (1 << 3 ) \r
+ | (0 << 2 )\r
+ | (0 <<1 ) \r
+ | (0 ); \r
+\r
+ /** - Leave configuration and initialization mode */\r
+ canREG2->CTL &= ~0x00000041U;\r
+\r
+\r
+ /** @note This function has to be called before the driver can be used.\n\r
+ * This function has to be executed in priviledged mode.\n\r
+ */\r
+\r
+/* USER CODE BEGIN (5) */\r
+/* USER CODE END */\r
+}\r
+\r
+\r
+/** @fn uint32_t canTransmit(canBASE_t *node, uint32_t messageBox, const uint8_t *data)\r
+* @brief Transmits a CAN message\r
+* @param[in] node Pointer to CAN node:\r
+* - canREG1: CAN1 node pointer\r
+* - canREG2: CAN2 node pointer\r
+* - canREG3: CAN3 node pointer\r
+* @param[in] messageBox Message box number of CAN node:\r
+* - canMESSAGE_BOX1: CAN message box 1\r
+* - canMESSAGE_BOXn: CAN message box n [n: 1-64]\r
+* - canMESSAGE_BOX64: CAN message box 64\r
+* @param[in] data Pointer to CAN TX data\r
+* @return The function will return:\r
+* - 0: When the setup of the TX message box wasn't successful \r
+* - 1: When the setup of the TX message box was successful \r
+*\r
+* This function writes a CAN message into a CAN message box.\r
+*\r
+*/\r
+\r
+/* USER CODE BEGIN (6) */\r
+/* USER CODE END */\r
+\r
+uint32_t canTransmit(canBASE_t *node, uint32_t messageBox, const uint8_t *data)\r
+{\r
+ uint32_t i;\r
+ uint32_t success = 0U;\r
+ uint32_t regIndex = (messageBox - 1U) >> 5U;\r
+ uint32_t bitIndex = 1U << ((messageBox - 1U) & 0x1FU);\r
+\r
+/* USER CODE BEGIN (7) */\r
+/* USER CODE END */\r
+\r
+ /** - Check for pending message:\r
+ * - pending message, return 0\r
+ * - no pending message, start new transmission \r
+ */\r
+ if (node->TXRQx[regIndex] & bitIndex)\r
+ {\r
+ return success;\r
+ }\r
+\r
+ /** - Wait until IF1 is ready for use */\r
+ while (node->IF1STAT & 0x80);\r
+\r
+ /** - Copy TX data into IF1 */\r
+ for (i = 0U; i < 8U; i++)\r
+ {\r
+#ifdef __little_endian__\r
+ node->IF1DATx[i] = *data++;\r
+#else\r
+ node->IF1DATx[s_canByteOrder[i]] = *data++;\r
+#endif\r
+ }\r
+\r
+ /** - Copy TX data into mesasge box */\r
+ node->IF1NO = messageBox;\r
+\r
+ success = 1U; \r
+\r
+ /** @note The function canInit has to be called before this function can be used.\n\r
+ * The user is responsible to initialize the message box.\r
+ */\r
+\r
+/* USER CODE BEGIN (8) */\r
+/* USER CODE END */\r
+\r
+ return success;\r
+}\r
+\r
+\r
+/** @fn uint32_t canGetData(canBASE_t *node, uint32_t messageBox, uint8_t * const data)\r
+* @brief Gets received a CAN message\r
+* @param[in] node Pointer to CAN node:\r
+* - canREG1: CAN1 node pointer\r
+* - canREG2: CAN2 node pointer\r
+* - canREG3: CAN3 node pointer\r
+* @param[in] messageBox Message box number of CAN node:\r
+* - canMESSAGE_BOX1: CAN message box 1\r
+* - canMESSAGE_BOXn: CAN message box n [n: 1-64]\r
+* - canMESSAGE_BOX64: CAN message box 64\r
+* @param[out] data Pointer to store CAN RX data\r
+* @return The function will return:\r
+* - 0: When RX message box hasn't received new data \r
+* - 1: When RX data are stored in the data buffer \r
+* - 3: When RX data are stored in the data buffer and a message was lost \r
+*\r
+* This function writes a CAN message into a CAN message box.\r
+*\r
+*/\r
+\r
+\r
+/* USER CODE BEGIN (9) */\r
+/* USER CODE END */\r
+\r
+uint32_t canGetData(canBASE_t *node, uint32_t messageBox, uint8_t * const data)\r
+{\r
+ uint32_t i;\r
+ uint32_t size;\r
+ uint8_t *pData = (uint8_t *)data;\r
+ uint32_t success = 0U;\r
+ uint32_t regIndex = (messageBox - 1U) >> 5U;\r
+ uint32_t bitIndex = 1U << ((messageBox - 1U) & 0x1FU);\r
+\r
+/* USER CODE BEGIN (10) */\r
+/* USER CODE END */\r
+\r
+ /** - Check if new data have been arrived:\r
+ * - no new data, return 0\r
+ * - new data, get received message \r
+ */\r
+ if (!(node->NWDATx[regIndex] & bitIndex))\r
+ {\r
+ return success;\r
+ }\r
+\r
+ /** - Wait until IF2 is ready for use */\r
+ while (node->IF2STAT & 0x80);\r
+\r
+ /** - Copy data into IF2 */\r
+ node->IF2NO = messageBox;\r
+\r
+ /** - Wait until data are copied into IF2 */\r
+ while (node->IF2STAT & 0x80);\r
+\r
+ /** - Get number of received bytes */\r
+ size = node->IF2MCTL & 0xFU;\r
+\r
+ /** - Copy RX data into destination buffer */\r
+ for (i = 0U; i < size; i++)\r
+ {\r
+#ifdef __little_endian__\r
+ *pData++ = node->IF2DATx[i];\r
+#else\r
+ *pData++ = node->IF2DATx[s_canByteOrder[i]];\r
+#endif\r
+ }\r
+\r
+ success = 1U;\r
+\r
+ /** - Check if data have been lost:\r
+ * - no data lost, return 1\r
+ * - data lost, return 3 \r
+ */\r
+ if (node->IF2MCTL & 0x4000U)\r
+ {\r
+ success = 3U;\r
+ }\r
+\r
+ /** @note The function canInit has to be called before this function can be used.\n\r
+ * The user is responsible to initialize the message box.\r
+ */\r
+\r
+/* USER CODE BEGIN (11) */\r
+/* USER CODE END */\r
+\r
+ return success;\r
+}\r
+\r
+\r
+/** @fn uint32_t canIsTxMessagePending(canBASE_t *node, uint32_t messageBox)\r
+* @brief Gets Tx message box transmission status\r
+* @param[in] node Pointer to CAN node:\r
+* - canREG1: CAN1 node pointer\r
+* - canREG2: CAN2 node pointer\r
+* - canREG3: CAN3 node pointer\r
+* @param[in] messageBox Message box number of CAN node:\r
+* - canMESSAGE_BOX1: CAN message box 1\r
+* - canMESSAGE_BOXn: CAN message box n [n: 1-64]\r
+* - canMESSAGE_BOX64: CAN message box 64\r
+* @return The function will return the tx request flag\r
+*\r
+* Checks to see if the Tx message box has a pending Tx request, returns\r
+* 0 is flag not set otherwise will return the Tx request flag itself.\r
+*/\r
+\r
+\r
+/* USER CODE BEGIN (12) */\r
+/* USER CODE END */\r
+\r
+uint32_t canIsTxMessagePending(canBASE_t *node, uint32_t messageBox)\r
+{\r
+ uint32_t flag;\r
+ uint32_t regIndex = (messageBox - 1U) >> 5U;\r
+ uint32_t bitIndex = 1U << ((messageBox - 1U) & 0x1FU);\r
+\r
+/* USER CODE BEGIN (13) */\r
+/* USER CODE END */\r
+\r
+ /** - Read Tx request reigster */\r
+ flag = node->TXRQx[regIndex] & bitIndex;\r
+\r
+/* USER CODE BEGIN (14) */\r
+/* USER CODE END */\r
+\r
+ return flag;\r
+}\r
+\r
+\r
+/** @fn uint32_t canIsRxMessageArrived(canBASE_t *node, uint32_t messageBox)\r
+* @brief Gets Rx message box reception status\r
+* @param[in] node Pointer to CAN node:\r
+* - canREG1: CAN1 node pointer\r
+* - canREG2: CAN2 node pointer\r
+* - canREG3: CAN3 node pointer\r
+* @param[in] messageBox Message box number of CAN node:\r
+* - canMESSAGE_BOX1: CAN message box 1\r
+* - canMESSAGE_BOXn: CAN message box n [n: 1-64]\r
+* - canMESSAGE_BOX64: CAN message box 64\r
+* @return The function will return the new data flag\r
+*\r
+* Checks to see if the Rx message box has pending Rx data, returns\r
+* 0 is flag not set otherwise will return the Tx request flag itself.\r
+*/\r
+\r
+\r
+/* USER CODE BEGIN (15) */\r
+/* USER CODE END */\r
+\r
+uint32_t canIsRxMessageArrived(canBASE_t *node, uint32_t messageBox)\r
+{\r
+ uint32_t flag;\r
+ uint32_t regIndex = (messageBox - 1U) >> 5U;\r
+ uint32_t bitIndex = 1U << ((messageBox - 1U) & 0x1FU);\r
+\r
+/* USER CODE BEGIN (16) */\r
+/* USER CODE END */\r
+\r
+ /** - Read Tx request register */\r
+ flag = node->NWDATx[regIndex] & bitIndex;\r
+\r
+/* USER CODE BEGIN (17) */\r
+/* USER CODE END */\r
+\r
+ return flag;\r
+}\r
+\r
+\r
+/** @fn uint32_t canIsMessageBoxValid(canBASE_t *node, uint32_t messageBox)\r
+* @brief Chechs if message box is valid\r
+* @param[in] node Pointer to CAN node:\r
+* - canREG1: CAN1 node pointer\r
+* - canREG2: CAN2 node pointer\r
+* - canREG3: CAN3 node pointer\r
+* @param[in] messageBox Message box number of CAN node:\r
+* - canMESSAGE_BOX1: CAN message box 1\r
+* - canMESSAGE_BOXn: CAN message box n [n: 1-64]\r
+* - canMESSAGE_BOX64: CAN message box 64\r
+* @return The function will return the new data flag\r
+*\r
+* Checks to see if the message box is valid for operation, returns\r
+* 0 is flag not set otherwise will return the validation flag itself.\r
+*/\r
+\r
+\r
+/* USER CODE BEGIN (18) */\r
+/* USER CODE END */\r
+\r
+uint32_t canIsMessageBoxValid(canBASE_t *node, uint32_t messageBox)\r
+{\r
+ uint32_t flag;\r
+ uint32_t regIndex = (messageBox - 1U) >> 5U;\r
+ uint32_t bitIndex = 1U << ((messageBox - 1U) & 0x1FU);\r
+\r
+/* USER CODE BEGIN (19) */\r
+/* USER CODE END */\r
+\r
+ /** - Read Tx request register */\r
+ flag = node->MSGVALx[regIndex] & bitIndex;\r
+\r
+/* USER CODE BEGIN (20) */\r
+/* USER CODE END */\r
+\r
+ return flag;\r
+}\r
+\r
+\r
+/** @fn uint32_t canGetLastError(canBASE_t *node)\r
+* @brief Gets last RX/TX-Error of CAN message traffic\r
+* @param[in] node Pointer to CAN node:\r
+* - canREG1: CAN1 node pointer\r
+* - canREG2: CAN2 node pointer\r
+* - canREG3: CAN3 node pointer\r
+* @return The function will return:\r
+* - canERROR_OK (0): When no CAN error occured \r
+* - canERROR_STUFF (1): When a stuff error occured on RX message \r
+* - canERROR_FORMAT (2): When a form/format error occured on RX message \r
+* - canERROR_ACKNOWLEDGE (3): When a TX message wasn't acknowledged \r
+* - canERROR_BIT1 (4): When a TX message monitored dominant level where recessive is expected \r
+* - canERROR_BIT0 (5): When a TX message monitored recessive level where dominant is expected \r
+* - canERROR_CRC (6): When a RX message has wrong CRC value \r
+* - canERROR_NO (7): When no error occured since last call of this function \r
+*\r
+* This function returns the last occured error code of an RX or TX message,\r
+* since the last call of this function.\r
+*\r
+*/\r
+\r
+\r
+/* USER CODE BEGIN (21) */\r
+/* USER CODE END */\r
+\r
+uint32_t canGetLastError(canBASE_t *node)\r
+{\r
+ uint32_t errorCode;\r
+\r
+/* USER CODE BEGIN (22) */\r
+/* USER CODE END */\r
+\r
+ /** - Get last error code */\r
+ errorCode = node->ES & 7U;\r
+\r
+ /** @note The function canInit has to be called before this function can be used. */\r
+\r
+/* USER CODE BEGIN (23) */\r
+/* USER CODE END */\r
+\r
+ return errorCode;\r
+}\r
+\r
+\r
+/** @fn uint32_t canGetErrorLevel(canBASE_t *node)\r
+* @brief Gets error level of a CAN node\r
+* @param[in] node Pointer to CAN node:\r
+* - canREG1: CAN1 node pointer\r
+* - canREG2: CAN2 node pointer\r
+* - canREG3: CAN3 node pointer\r
+* @return The function will return:\r
+* - canLEVEL_ACTIVE (0x00): When RX- and TX error counters are below 96 \r
+* - canLEVEL_WARNING (0x40): When RX- or TX error counter are between 96 and 127 \r
+* - canLEVEL_PASSIVE (0x20): When RX- or TX error counter are between 128 and 255 \r
+* - canLEVEL_BUS_OFF (0x80): When RX- or TX error counter are above 255 \r
+*\r
+* This function returns the current error level of a CAN node.\r
+*\r
+*/\r
+\r
+\r
+/* USER CODE BEGIN (24) */\r
+/* USER CODE END */\r
+\r
+uint32_t canGetErrorLevel(canBASE_t *node)\r
+{\r
+ uint32_t errorLevel;\r
+\r
+/* USER CODE BEGIN (25) */\r
+/* USER CODE END */\r
+\r
+ /** - Get error level */\r
+ errorLevel = node->ES & 0xE0U;\r
+\r
+ /** @note The function canInit has to be called before this function can be used. */\r
+\r
+/* USER CODE BEGIN (26) */\r
+/* USER CODE END */\r
+\r
+ return errorLevel;\r
+}\r
+\r
+\r
+/** @fn void canEnableErrorNotification(canBASE_t *node)\r
+* @brief Enable error notification\r
+* @param[in] node Pointer to CAN node:\r
+* - canREG1: CAN1 node pointer\r
+* - canREG2: CAN2 node pointer\r
+* - canREG3: CAN3 node pointer\r
+*\r
+* This function will enable the notification for the reaching the error levels warning, passive and bus off.\r
+*/\r
+\r
+/* USER CODE BEGIN (27) */\r
+/* USER CODE END */\r
+\r
+void canEnableErrorNotification(canBASE_t *node)\r
+{\r
+/* USER CODE BEGIN (28) */\r
+/* USER CODE END */\r
+\r
+ node->CTL |= 8U;\r
+\r
+ /** @note The function canInit has to be called before this function can be used. */\r
+\r
+/* USER CODE BEGIN (29) */\r
+/* USER CODE END */\r
+}\r
+\r
+\r
+/** @fn void canDisableErrorNotification(canBASE_t *node)\r
+* @brief Disable error notification\r
+* @param[in] node Pointer to CAN node:\r
+* - canREG1: CAN1 node pointer\r
+* - canREG2: CAN2 node pointer\r
+* - canREG3: CAN3 node pointer\r
+*\r
+* This function will disable the notification for the reaching the error levels warning, passive and bus off.\r
+*/\r
+\r
+/* USER CODE BEGIN (30) */\r
+/* USER CODE END */\r
+\r
+void canDisableErrorNotification(canBASE_t *node)\r
+{\r
+/* USER CODE BEGIN (31) */\r
+/* USER CODE END */\r
+\r
+ node->CTL &= ~8U;\r
+\r
+ /** @note The function canInit has to be called before this function can be used. */\r
+\r
+/* USER CODE BEGIN (32) */\r
+/* USER CODE END */\r
+}\r
+\r
+/** @fn void canIoSetDirection(canBASE_t *node,uint32_t TxDir,uint32_t RxDir)\r
+* @brief Set Port Direction\r
+* @param[in] node Pointer to CAN node:\r
+* - canREG1: CAN1 node pointer\r
+* - canREG2: CAN2 node pointer\r
+* - canREG3: CAN3 node pointer\r
+* @param[in] TxDir - TX Pin direction\r
+* @param[in] RxDir - RX Pin direction\r
+*\r
+* Set the direction of CAN pins at runtime when configured as IO pins.\r
+*/\r
+void canIoSetDirection(canBASE_t *node,uint32_t TxDir,uint32_t RxDir)\r
+{\r
+ node->TIOC = TxDir << 2;\r
+ node->RIOC = RxDir << 2;\r
+}\r
+\r
+/** @fn void canIoSetPort(canBASE_t *node, uint32_t TxValue, uint32_t RxValue)\r
+* @brief Write Port Value\r
+* @param[in] node Pointer to CAN node:\r
+* - canREG1: CAN1 node pointer\r
+* - canREG2: CAN2 node pointer\r
+* - canREG3: CAN3 node pointer\r
+* @param[in] TxValue - TX Pin value 0 or 1\r
+* @param[in] RxValue - RX Pin value 0 or 1\r
+*\r
+* Writes a value to TX and RX pin of a given CAN module when configured as IO pins.\r
+*/\r
+void canIoSetPort(canBASE_t *node, uint32_t TxValue, uint32_t RxValue)\r
+{\r
+/* USER CODE BEGIN (33) */\r
+/* USER CODE END */\r
+\r
+ node->TIOC = TxValue << 1;\r
+ node->RIOC = RxValue << 1;\r
+\r
+/* USER CODE BEGIN (34) */\r
+/* USER CODE END */\r
+}\r
+\r
+/** @fn uint32_t canIoTxGetBit(canBASE_t *node)\r
+* @brief Read TX Bit\r
+* @param[in] node Pointer to CAN node:\r
+* - canREG1: CAN1 node pointer\r
+* - canREG2: CAN2 node pointer\r
+* - canREG3: CAN3 node pointer\r
+*\r
+* Reads a the current value from the TX pin of the given CAN port\r
+*/\r
+uint32_t canIoTxGetBit(canBASE_t *node)\r
+{\r
+/* USER CODE BEGIN (35) */\r
+/* USER CODE END */\r
+\r
+ return (node->TIOC >> 0) & 1U;\r
+}\r
+\r
+/** @fn uint32_t canIoRxGetBit(canBASE_t *node)\r
+* @brief Read RX Bit\r
+* @param[in] node Pointer to CAN node:\r
+* - canREG1: CAN1 node pointer\r
+* - canREG2: CAN2 node pointer\r
+* - canREG3: CAN3 node pointer\r
+*\r
+* Reads a the current value from the RX pin of the given CAN port\r
+*/\r
+uint32_t canIoRxGetBit(canBASE_t *node)\r
+{\r
+/* USER CODE BEGIN (36) */\r
+/* USER CODE END */\r
+\r
+ return (node->RIOC >> 0) & 1U;\r
+}\r
+\r
+/** @fn void can1HighLevelInterrupt(void)\r
+* @brief CAN1 Level 0 Interrupt Handler\r
+*/\r
+\r
+/* USER CODE BEGIN (37) */\r
+/* USER CODE END */\r
+\r
+\r
+#pragma INTERRUPT(can1HighLevelInterrupt, IRQ)\r
+\r
+void can1HighLevelInterrupt(void)\r
+{\r
+ uint32_t value = canREG1->INT;\r
+\r
+/* USER CODE BEGIN (38) */\r
+/* USER CODE END */\r
+\r
+ if (value == 0x8000U)\r
+ {\r
+ canErrorNotification(canREG1, canREG1->ES & 0xE0U);\r
+ return;\r
+ }\r
+\r
+ /** - Setup IF1 for clear pending interrupt flag */\r
+ while (canREG1->IF1STAT & 0x80);\r
+\r
+ canREG1->IF1CMD = 0x08;\r
+ canREG1->IF1NO = value;\r
+\r
+ while (canREG1->IF1STAT & 0x80);\r
+\r
+ canREG1->IF1CMD = 0x87;\r
+\r
+ canMessageNotification(canREG1, value);\r
+\r
+/* USER CODE BEGIN (39) */\r
+/* USER CODE END */\r
+}\r
+\r
+\r
+/** @fn void can1LowLevelInterrupt(void)\r
+* @brief CAN1 Level 1 Interrupt Handler\r
+*/\r
+\r
+/* USER CODE BEGIN (40) */\r
+/* USER CODE END */\r
+\r
+#pragma INTERRUPT(can1LowLevelInterrupt, IRQ)\r
+\r
+void can1LowLevelInterrupt(void)\r
+{\r
+ uint32_t messageBox = canREG1->INT >> 16U;\r
+\r
+/* USER CODE BEGIN (41) */\r
+/* USER CODE END */\r
+\r
+ /** - Setup IF1 for clear pending interrupt flag */\r
+ while (canREG1->IF1STAT & 0x80);\r
+\r
+ canREG1->IF1CMD = 0x08;\r
+ canREG1->IF1NO = messageBox;\r
+\r
+ while (canREG1->IF1STAT & 0x80);\r
+\r
+ canREG1->IF1CMD = 0x87;\r
+\r
+ canMessageNotification(canREG1, messageBox);\r
+\r
+/* USER CODE BEGIN (42) */\r
+/* USER CODE END */\r
+}\r
+\r
+\r
+/** @fn void can2HighLevelInterrupt(void)\r
+* @brief CAN2 Level 0 Interrupt Handler\r
+*/\r
+\r
+/* USER CODE BEGIN (43) */\r
+/* USER CODE END */\r
+\r
+#pragma INTERRUPT(can2HighLevelInterrupt, IRQ)\r
+\r
+void can2HighLevelInterrupt(void)\r
+{\r
+ uint32_t value = canREG2->INT;\r
+\r
+/* USER CODE BEGIN (44) */\r
+/* USER CODE END */\r
+\r
+ if (value == 0x8000U)\r
+ {\r
+ canErrorNotification(canREG2, canREG2->ES & 0xE0U);\r
+ return;\r
+ }\r
+\r
+ /** - Setup IF1 for clear pending interrupt flag */\r
+ while (canREG2->IF1STAT & 0x80);\r
+\r
+ canREG2->IF1CMD = 0x08;\r
+ canREG2->IF1NO = value;\r
+\r
+ while (canREG2->IF1STAT & 0x80);\r
+\r
+ canREG2->IF1CMD = 0x87;\r
+\r
+ canMessageNotification(canREG2, value);\r
+\r
+/* USER CODE BEGIN (45) */\r
+/* USER CODE END */\r
+}\r
+\r
+\r
+/** @fn void can2LowLevelInterrupt(void)\r
+* @brief CAN2 Level 1 Interrupt Handler\r
+*/\r
+\r
+/* USER CODE BEGIN (46) */\r
+/* USER CODE END */\r
+\r
+#pragma INTERRUPT(can2LowLevelInterrupt, IRQ)\r
+\r
+void can2LowLevelInterrupt(void)\r
+{\r
+ uint32_t messageBox = canREG2->INT >> 16U;\r
+\r
+/* USER CODE BEGIN (47) */\r
+/* USER CODE END */\r
+\r
+ /** - Setup IF1 for clear pending interrupt flag */\r
+ while (canREG2->IF1STAT & 0x80);\r
+\r
+ canREG2->IF1CMD = 0x08;\r
+ canREG2->IF1NO = messageBox;\r
+\r
+ while (canREG2->IF1STAT & 0x80);\r
+\r
+ canREG2->IF1CMD = 0x87;\r
+\r
+ canMessageNotification(canREG2, messageBox);\r
+\r
+/* USER CODE BEGIN (48) */\r
+/* USER CODE END */\r
+}\r
+\r
+\r
+\r