2021-10-25 19:25:40 索炜达电子 1088
项目编号:E1739
文件大小:22M
源码说明:带中文注释
开发环境:C编译器
简要概述:
基于TMS320F28335的CAN线IAP升级程序的办法。使用方式在readme.md。 分为三个部分:burnCAN,28335_main主体程序,和上位机程序。 使用思路是burnCAN程序与主体程序分开烧录在28335的不同扇区, 启动后判断是否有上位机CAN通讯,若无,跳转进主体程序。 实现两个功能的解耦。 仅在出厂烧录时烧录burnCAN即可,后续主体更新与burnCAN无关 (上位机屏蔽了扇区1)
目录│文件列表:
└ can-bootloader-28335
├ 28335_burnCan
│ │ .ccsproject
│ │ .cproject
│ │ .project
│ │ cc_build_Debug.log
│ │ cc_build_Release.log
│ │ Debug.lkf
│ │ Example_Flash28335_API.paf2
│ │ Example_Flash28335_API.pjt
│ │ Example_Flash28335_API.sbl
│ │ project.log
│ │ Release.lkf
│ ├ .settings
│ │ │ org.eclipse.cdt.codan.core.prefs
│ │ │ org.eclipse.cdt.debug.core.prefs
│ │ └ org.eclipse.core.resources.prefs
│ ├ cmd
│ │ │ 28335_RAM_lnk.cmd
│ │ │ DSP2833x_Headers_BIOS.cmd
│ │ │ DSP2833x_Headers_nonBIOS.cmd
│ │ └ Example_Flash28335_API.cmd
│ ├ Debug
│ │ │ 28335_burnCan.map
│ │ │ 28335_burnCan.out
│ │ │ 28335_burnCan_linkInfo.xml
│ │ │ CAN_Boot.obj
│ │ │ ccsObjs.opt
│ │ │ DSP2833x_ADC_cal.obj
│ │ │ DSP2833x_CodeStartBranch.obj
│ │ │ DSP2833x_CSMPasswords.obj
│ │ │ DSP2833x_GlobalVariableDefs.obj
│ │ │ DSP2833x_SysCtrl.obj
│ │ │ DSP2833x_usDelay.obj
│ │ │ Example_Flash28335_API.map
│ │ │ Example_Flash28335_API.out
│ │ │ Example_Flash2833x_API.obj
│ │ │ Example_Flash2833x_CsmKeys.obj
│ │ │ Example_Flash2833x_GlobalVariableDefs.obj
│ │ │ hex2000.exe
│ │ │ makefile
│ │ │ objects.mk
│ │ │ out_to_hex.bat
│ │ │ Shared_Boot.obj
│ │ │ sources.mk
│ │ ├ cmd
│ │ │ │ subdir_rules.mk
│ │ │ └ subdir_vars.mk
│ │ ├ library
│ │ │ │ subdir_rules.mk
│ │ │ └ subdir_vars.mk
│ │ ├ out_to_hex_bat生产的文件2
│ │ │ └ Example_Flash28335_API.a00
│ │ ├ out_to_hex_bat生产的文件cmd
│ │ │ └ Example_Flash28335_API.a00
│ │ └ source
│ │ │ CAN_Boot.d
│ │ │ CAN_Boot.obj
│ │ │ DSP2833x_ADC_cal.obj
│ │ │ DSP2833x_CodeStartBranch.obj
│ │ │ DSP2833x_CSMPasswords.obj
│ │ │ DSP2833x_GlobalVariableDefs.d
│ │ │ DSP2833x_GlobalVariableDefs.obj
│ │ │ DSP2833x_SysCtrl.d
│ │ │ DSP2833x_SysCtrl.obj
│ │ │ DSP2833x_usDelay.obj
│ │ │ Example_Flash2833x_API.d
│ │ │ Example_Flash2833x_API.obj
│ │ │ subdir_rules.mk
│ │ └ subdir_vars.mk
│ ├ Example_Flash28335_API.CS_
│ │ │ FILE.CDX
│ │ │ FILE.DBF
│ │ │ FILE.FPT
│ │ │ SYMBOL.CDX
│ │ │ SYMBOL.DBF
│ │ └ SYMBOL.FPT
│ ├ include
│ │ │ DSP2833x_Adc.h
│ │ │ DSP2833x_CpuTimers.h
│ │ │ DSP2833x_DefaultIsr.h
│ │ │ DSP2833x_DevEmu.h
│ │ │ DSP2833x_Device.h
│ │ │ DSP2833x_DMA.h
│ │ │ DSP2833x_Dma_defines.h
│ │ │ DSP2833x_ECan.h
│ │ │ DSP2833x_ECap.h
│ │ │ DSP2833x_EPwm.h
│ │ │ DSP2833x_EPwm_defines.h
│ │ │ DSP2833x_EQep.h
│ │ │ DSP2833x_Examples.h
│ │ │ DSP2833x_GlobalPrototypes.h
│ │ │ DSP2833x_Gpio.h
│ │ │ DSP2833x_I2c.h
│ │ │ DSP2833x_I2c_defines.h
│ │ │ DSP2833x_Mcbsp.h
│ │ │ DSP2833x_PieCtrl.h
│ │ │ DSP2833x_PieVect.h
│ │ │ DSP2833x_Sci.h
│ │ │ DSP2833x_Spi.h
│ │ │ DSP2833x_SysCtrl.h
│ │ │ DSP2833x_Xintf.h
│ │ │ DSP2833x_XIntrupt.h
│ │ │ Example_Flash2833x_API.h
│ │ │ Flash2833x_API_Config.h
│ │ │ Flash2833x_API_Library.h
│ │ └ TMS320x2833x_Boot.h
│ ├ library
│ │ │ Flash28335_API_V210.lib
│ │ └ rts2800_fpu32.lib
│ ├ Release
│ │ │ 28335_burnCan.map
│ │ │ 28335_burnCan.out
│ │ │ 28335_burnCan_linkInfo.xml
│ │ │ CAN_Boot.obj
│ │ │ ccsObjs.opt
│ │ │ DSP2833x_ADC_cal.obj
│ │ │ DSP2833x_CodeStartBranch.obj
│ │ │ DSP2833x_CSMPasswords.obj
│ │ │ DSP2833x_GlobalVariableDefs.obj
│ │ │ DSP2833x_SysCtrl.obj
│ │ │ DSP2833x_usDelay.obj
│ │ │ Example_Flash28335_API.map
│ │ │ Example_Flash28335_API.out
│ │ │ Example_Flash28335_API【BurnBuffer[0x1000]定义为全局变量时】.map
│ │ │ Example_Flash28335_API【BurnBuffer[0x1000]定义为局部变量时】.map
│ │ │ Example_Flash2833x_API.obj
│ │ │ makefile
│ │ │ objects.mk
│ │ │ Shared_Boot.obj
│ │ │ sources.mk
│ │ ├ cmd
│ │ │ │ subdir_rules.mk
│ │ │ └ subdir_vars.mk
│ │ ├ library
│ │ │ │ subdir_rules.mk
│ │ │ └ subdir_vars.mk
│ │ └ source
│ │ │ CAN_Boot.d
│ │ │ CAN_Boot.obj
│ │ │ DSP2833x_ADC_cal.obj
│ │ │ DSP2833x_CodeStartBranch.obj
│ │ │ DSP2833x_CSMPasswords.obj
│ │ │ DSP2833x_GlobalVariableDefs.d
│ │ │ DSP2833x_GlobalVariableDefs.obj
│ │ │ DSP2833x_SysCtrl.d
│ │ │ DSP2833x_SysCtrl.obj
│ │ │ DSP2833x_usDelay.obj
│ │ │ Example_Flash2833x_API.d
│ │ │ Example_Flash2833x_API.obj
│ │ │ subdir_rules.mk
│ │ └ subdir_vars.mk
│ └ source
│ │ CAN_Boot.c
│ │ DSP2833x_ADC_cal.asm
│ │ DSP2833x_CodeStartBranch.asm
│ │ DSP2833x_CSMPasswords.asm
│ │ DSP2833x_GlobalVariableDefs.c
│ │ DSP2833x_SysCtrl.c
│ │ DSP2833x_usDelay.asm
│ └ Example_Flash2833x_API.c
├ 28335_CAN烧写上位机软件 - 银盒,VS2015
│ │ ControlCAN.dll
│ │ ControlCAN.h
│ │ ControlCAN.lib
│ │ ReadMe.txt
│ │ resource.h
│ │ StdAfx.cpp
│ │ StdAfx.h
│ │ test.aps
│ │ test.clw
│ │ test.cpp
│ │ test.dsp
│ │ test.dsw
│ │ test.exe
│ │ test.h
│ │ test.ncb
│ │ test.opt
│ │ test.plg
│ │ test.positions
│ │ test.rc
│ │ test.sln
│ │ test.vcxproj
│ │ test.vcxproj.filters
│ │ testDlg.cpp
│ │ testDlg.h
│ │ TestListBox.cpp
│ │ TestListBox.h
│ │ UpgradeLog.htm
│ ├ .vs
│ │ └ test
│ │ └ v14
│ │ └ .suo
│ ├ controlcan.dll.bk
│ │ └ ControlCAN.dll
│ ├ Debug
│ │ │ ControlCAN.dll
│ │ │ ControlCAN.h
│ │ │ ControlCAN.lib
│ │ │ StdAfx.obj
│ │ │ StdAfx.sbr
│ │ │ test.bsc
│ │ │ test.Build.CppClean.log
│ │ │ test.exe
│ │ │ test.ilk
│ │ │ test.log
│ │ │ test.obj
│ │ │ test.pch
│ │ │ test.pdb
│ │ │ test.res
│ │ │ test.sbr
│ │ │ test2017-08-24(11-44-06).dmp
│ │ │ test2017-08-26(08-20-31).dmp
│ │ │ test2020-07-20(16-41-29).dmp
│ │ │ testDlg.obj
│ │ │ testDlg.sbr
│ │ │ TestListBox.obj
│ │ │ TestListBox.sbr
│ │ │ vc140.idb
│ │ │ vc140.pdb
│ │ ├ kerneldlls
│ │ │ │ CAN232.dll
│ │ │ │ gpcidll.dll
│ │ │ │ kerneldll.ini
│ │ │ │ PCI5121.dll
│ │ │ │ PCI9820B.DLL
│ │ │ └ usbcan.dll
│ │ └ test.tlog
│ │ │ BscMake.command.1.tlog
│ │ │ bscmake.read.1.tlog
│ │ │ bscmake.write.1.tlog
│ │ │ CL.command.1.tlog
│ │ │ CL.read.1.tlog
│ │ │ CL.write.1.tlog
│ │ │ link.command.1.tlog
│ │ │ link.read.1.tlog
│ │ │ link.write.1.tlog
│ │ │ rc.command.1.tlog
│ │ │ rc.read.1.tlog
│ │ │ rc.write.1.tlog
│ │ └ test.lastbuildstate
│ ├ kerneldlls
│ │ │ CAN232.dll
│ │ │ gpcidll.dll
│ │ │ kerneldll.ini
│ │ │ PCI5121.dll
│ │ │ PCI9820B.DLL
│ │ └ usbcan.dll
│ └ res
│ │ test.ico
│ │ test.rc2
│ └ Thumbs.db
├ 28335_main
│ │ .ccsproject
│ │ .cproject
│ │ .project
│ │ 2017-6-29.wks
│ │ cc_build_Debug.log
│ │ cc_build_Release.log
│ │ Debug.lkf
│ │ Example_2833xCpuTimer.gel
│ │ Example_2833xCpuTimer.paf2
│ │ Example_2833xCpuTimer.sbl
│ │ led.paf2
│ │ led.pjt
│ │ led.sbl
│ │ project.log
│ │ Release.lkf
│ ├ .launches
│ │ │ led_std_202000722.launch
│ │ │ led_std_20200709.launch
│ │ │ led_std_20200722.launch
│ │ │ led_std_20200808[220382G].launch
│ │ │ led_std_20200828[220383G].launch
│ │ └ led_std_20200908[220382G][double].launch
│ ├ .settings
│ │ │ org.eclipse.cdt.codan.core.prefs
│ │ │ org.eclipse.cdt.debug.core.prefs
│ │ └ org.eclipse.core.resources.prefs
│ ├ cmd
│ │ │ DSP2833x_Headers_nonBIOS.cmd
│ │ │ F28335_FLASH_lnk.bk
│ │ │ F28335_FLASH_lnk.cmd
│ │ └ F28335_XRAM_lnk.cmd
│ ├ include
│ │ │ DataTypeRedefine.h
│ │ │ DSP2833x_Adc.h
│ │ │ DSP2833x_usDelay.asm
│ │ │ DSP2833x_Xintf.c
│ │ │ Main.c
│ │ └ Main.c.bak
│ └ targetConfigs
│ │ readme.txt
│ └ TMS320F28035.ccxml
├ 28335_out2hex
│ │ 220382G[20200912].a00
│ │ 220382G[20200912].out
│ │ 220382G[20200912].zip
│ │ 28335_burnCan.out
│ │ hex2000.exe
│ └ OUT_TO_HEX.bat
└ 28335__howtoburnCAN
│ 28335 CAN烧录方法图示(基于CCS6).md
└ 新建文件夹 (3)
│ 220081广汽丰田AGC.txt
│ CAN上位机烧录 进入Release下 双击test .jpg
│ 全部勾选后 选择remenber my settings.jpg
│ 双击out_to_hex .bat 即可生成 out对应的a00文件 .jpg
│ 反选Sector A,点击remember my setting .jpg
│ 右键编辑打开 (不能双击) out_to_Hex.bat文件 将文件红框位置文件名修改为要处理的工程out文件名.jpg
│ 在tool菜单栏中选择 On-Chip Flash .jpg
│ 将工程编译后的out文件放入out2Hex文件夹 .jpg
│ 打开指定文件,对话框内选择文件类型为 选择刚刚生成的.a00文件 .jpg
│ 提示File is Opened 选择4Program 等待.jpg
│ 最后提示烧写完成 目标CCU运行灯开始闪烁..jpg
│ 点击下载按钮.jpg
│ 目标CCU上电 软件出现connected提示 .jpg
│ 目标CCU断电, 依次选择1 断开,2启动CAN 出现USB-CAN启动成功字样说明运行OK.jpg
│ 进入debug模式,点击连接图标,连接仿真器CDS100v2.jpg
│ 进入下载页面,等待.jpg
│ 选择bootloader 程序,点击下载.jpg
└ 选择车体程序 点击下载.jpg