+ invoke, pfd, - dlcpro-fw-file
This commit is contained in:
parent
7195f61705
commit
28916c67c5
@ -1,4 +1,5 @@
|
|||||||
command -nargs=1 -complete=dir DlcPro call s:ProjectSet('dlcpro', '<args>')
|
command -nargs=1 -complete=dir DlcPro call s:ProjectSet('dlcpro', '<args>')
|
||||||
|
command -nargs=1 -complete=dir DlcProOld call s:ProjectSet('dlcpro-old', '<args>')
|
||||||
command -nargs=1 -complete=dir DlcProShg call s:ProjectSet('shg', '<args>')
|
command -nargs=1 -complete=dir DlcProShg call s:ProjectSet('shg', '<args>')
|
||||||
command -nargs=1 -complete=dir DlcProGui call s:ProjectSet('dlcpro-gui', '<args>')
|
command -nargs=1 -complete=dir DlcProGui call s:ProjectSet('dlcpro-gui', '<args>')
|
||||||
command -nargs=1 -complete=dir DlcProTui call s:ProjectSet('dlcpro-tui', '<args>')
|
command -nargs=1 -complete=dir DlcProTui call s:ProjectSet('dlcpro-tui', '<args>')
|
||||||
@ -6,10 +7,13 @@ command -nargs=1 -complete=dir DlcProTuiSimulator call s:ProjectSet('dlcpro-tui-
|
|||||||
command -nargs=1 -complete=dir DlcProCan call s:ProjectSet('dlcpro-can', '<args>')
|
command -nargs=1 -complete=dir DlcProCan call s:ProjectSet('dlcpro-can', '<args>')
|
||||||
command -nargs=1 -complete=dir DlcProSpecalyser call s:ProjectSet('dlcpro-specalyser', '<args>')
|
command -nargs=1 -complete=dir DlcProSpecalyser call s:ProjectSet('dlcpro-specalyser', '<args>')
|
||||||
command -nargs=1 -complete=dir Topmode call s:ProjectSet('topmode', '<args>')
|
command -nargs=1 -complete=dir Topmode call s:ProjectSet('topmode', '<args>')
|
||||||
|
command -nargs=1 -complete=dir TopmodeOld call s:ProjectSet('topmode-old', '<args>')
|
||||||
command -nargs=1 -complete=dir TopmodeGui call s:ProjectSet('topmode-gui', '<args>')
|
command -nargs=1 -complete=dir TopmodeGui call s:ProjectSet('topmode-gui', '<args>')
|
||||||
|
command -nargs=1 -complete=dir TopmodeGuiOld call s:ProjectSet('topmode-gui-old', '<args>')
|
||||||
command -nargs=1 -complete=dir DigiFalc call s:ProjectSet('digifalc', '<args>')
|
command -nargs=1 -complete=dir DigiFalc call s:ProjectSet('digifalc', '<args>')
|
||||||
command -nargs=1 -complete=dir ServoBoard call s:ProjectSet('servoboard', '<args>')
|
command -nargs=1 -complete=dir ServoBoard call s:ProjectSet('servoboard', '<args>')
|
||||||
command -nargs=1 -complete=dir DlMotor call s:ProjectSet('dl-motor', '<args>')
|
command -nargs=1 -complete=dir DlMotor call s:ProjectSet('dl-motor', '<args>')
|
||||||
|
command -nargs=1 -complete=dir Pfd call s:ProjectSet('pfd', '<args>')
|
||||||
command -nargs=1 -complete=dir OperationPanelF1 call s:ProjectSet('operation-panel-f1', '<args>')
|
command -nargs=1 -complete=dir OperationPanelF1 call s:ProjectSet('operation-panel-f1', '<args>')
|
||||||
command -nargs=1 -complete=dir OperationPanelF4 call s:ProjectSet('operation-panel-f4', '<args>')
|
command -nargs=1 -complete=dir OperationPanelF4 call s:ProjectSet('operation-panel-f4', '<args>')
|
||||||
command -nargs=1 -complete=dir DeCoF call s:ProjectSet('decof', '<args>')
|
command -nargs=1 -complete=dir DeCoF call s:ProjectSet('decof', '<args>')
|
||||||
@ -37,6 +41,8 @@ function! s:ProjectSet(project_type, project_base_dir)
|
|||||||
" defaults
|
" defaults
|
||||||
if (g:project_type == 'dlcpro')
|
if (g:project_type == 'dlcpro')
|
||||||
let s:ProjectBaseDir = '/home/stefan/dlcpro/firmware'
|
let s:ProjectBaseDir = '/home/stefan/dlcpro/firmware'
|
||||||
|
elseif (g:project_type == 'dlcpro-old')
|
||||||
|
let s:ProjectBaseDir = '/home/stefan/dlcpro/firmware'
|
||||||
elseif (g:project_type == 'dlcpro-tui')
|
elseif (g:project_type == 'dlcpro-tui')
|
||||||
let s:ProjectBaseDir = '/home/stefan/dlcpro/firmware'
|
let s:ProjectBaseDir = '/home/stefan/dlcpro/firmware'
|
||||||
elseif (g:project_type == 'dlcpro-tui-simulator')
|
elseif (g:project_type == 'dlcpro-tui-simulator')
|
||||||
@ -51,14 +57,20 @@ function! s:ProjectSet(project_type, project_base_dir)
|
|||||||
let s:ProjectBaseDir = '/home/stefan/dlcpro/pc-gui'
|
let s:ProjectBaseDir = '/home/stefan/dlcpro/pc-gui'
|
||||||
elseif (g:project_type == 'topmode')
|
elseif (g:project_type == 'topmode')
|
||||||
let s:ProjectBaseDir = '/home/stefan/topmode/firmware'
|
let s:ProjectBaseDir = '/home/stefan/topmode/firmware'
|
||||||
|
elseif (g:project_type == 'topmode-old')
|
||||||
|
let s:ProjectBaseDir = '/home/stefan/topmode/firmware'
|
||||||
elseif (g:project_type == 'topmode-gui')
|
elseif (g:project_type == 'topmode-gui')
|
||||||
let s:ProjectBaseDir = '/home/stefan/topmode/pc-gui'
|
let s:ProjectBaseDir = '/home/stefan/topmode/pc-gui'
|
||||||
|
elseif (g:project_type == 'topmode-gui-old')
|
||||||
|
let s:ProjectBaseDir = '/home/stefan/topmode/pc-gui'
|
||||||
elseif (g:project_type == 'digifalc')
|
elseif (g:project_type == 'digifalc')
|
||||||
let s:ProjectBaseDir = '/home/stefan/dlcpro/falc/firmware'
|
let s:ProjectBaseDir = '/home/stefan/dlcpro/falc/firmware'
|
||||||
elseif (g:project_type == 'servoboard')
|
elseif (g:project_type == 'servoboard')
|
||||||
let s:ProjectBaseDir = '/home/stefan/dlcpro/mta/firmware'
|
let s:ProjectBaseDir = '/home/stefan/dlcpro/mta/firmware'
|
||||||
elseif (g:project_type == 'dl-motor')
|
elseif (g:project_type == 'dl-motor')
|
||||||
let s:ProjectBaseDir = '/home/stefan/dlcpro/dl-motor'
|
let s:ProjectBaseDir = '/home/stefan/dlcpro/dl-motor'
|
||||||
|
elseif (g:project_type == 'pfd')
|
||||||
|
let s:ProjectBaseDir = '/home/stefan/dlcpro/pfd/firmware'
|
||||||
else
|
else
|
||||||
echo "no project"
|
echo "no project"
|
||||||
endif
|
endif
|
||||||
@ -76,26 +88,34 @@ function! s:ProjectSet(project_type, project_base_dir)
|
|||||||
\'gcc-12.3.1-glibc-2.33-binutils-2.39-kernel-5.4-sanitized/'
|
\'gcc-12.3.1-glibc-2.33-binutils-2.39-kernel-5.4-sanitized/'
|
||||||
|
|
||||||
function! s:set_oselas_gcc4()
|
function! s:set_oselas_gcc4()
|
||||||
let g:GccRoot = s:oselas_gcc4_root
|
if s:use_invoke
|
||||||
" let g:termdebugger = s:oselas_gcc4_root . 'bin/'.s:oselas_gcc4_lastname.'-gdb'
|
let g:new_compiler = v:false
|
||||||
let g:termdebugger = s:oselas_gcc_root . 'bin/'.s:oselas_gcc_lastname.'-gdb'
|
else
|
||||||
let g:oselas_gcc_solib_paths = s:oselas_gcc4_root.'/'.s:oselas_gcc4_lastname.'/lib/'.':'.
|
let g:GccRoot = s:oselas_gcc4_root
|
||||||
\ s:oselas_gcc4_root.'/sysroot-'.s:oselas_gcc4_lastname.'/lib/'.':'.
|
" let g:termdebugger = s:oselas_gcc4_root . 'bin/'.s:oselas_gcc4_lastname.'-gdb'
|
||||||
\ s:oselas_gcc4_root.'/sysroot-'.s:oselas_gcc4_lastname.'/usr/lib/'
|
let g:termdebugger = s:oselas_gcc_root . 'bin/'.s:oselas_gcc_lastname.'-gdb'
|
||||||
" let $PATH = s:oselas_gcc4_root.'/sysroot-'.s:oselas_gcc4_lastname.'/usr/include'.':'.s:path_orig
|
let g:oselas_gcc_solib_paths = s:oselas_gcc4_root.'/'.s:oselas_gcc4_lastname.'/lib/'.':'.
|
||||||
let g:analyser = s:oselas_gcc_root . 'bin/'.s:oselas_gcc_lastname.'-gcc'
|
\ s:oselas_gcc4_root.'/sysroot-'.s:oselas_gcc4_lastname.'/lib/'.':'.
|
||||||
let g:new_compiler = ' -DNEW_COMPILER=OFF'
|
\ s:oselas_gcc4_root.'/sysroot-'.s:oselas_gcc4_lastname.'/usr/lib/'
|
||||||
|
" let $PATH = s:oselas_gcc4_root.'/sysroot-'.s:oselas_gcc4_lastname.'/usr/include'.':'.s:path_orig
|
||||||
|
let g:analyser = s:oselas_gcc_root . 'bin/'.s:oselas_gcc_lastname.'-gcc'
|
||||||
|
let g:dnew_compiler = ' -DNEW_COMPILER=OFF'
|
||||||
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:set_oselas_gcc()
|
function! s:set_oselas_gcc()
|
||||||
let g:GccRoot = s:oselas_gcc_root
|
if s:use_invoke
|
||||||
let g:termdebugger = s:oselas_gcc_root . 'bin/'.s:oselas_gcc_lastname.'-gdb'
|
let g:new_compiler = v:true
|
||||||
let g:oselas_gcc_solib_paths = s:oselas_gcc_root.'/'.s:oselas_gcc_lastname.'/lib/'.':'.
|
else
|
||||||
\ s:oselas_gcc_root.'/sysroot-'.s:oselas_gcc_lastname.'/lib/'.':'.
|
let g:GccRoot = s:oselas_gcc_root
|
||||||
\ s:oselas_gcc_root.'/sysroot-'.s:oselas_gcc_lastname.'/usr/lib/'
|
let g:termdebugger = s:oselas_gcc_root . 'bin/'.s:oselas_gcc_lastname.'-gdb'
|
||||||
" let $PATH = s:oselas_gcc_root.'/sysroot-'.s:oselas_gcc_lastname.'/usr/include'.':'.s:path_orig
|
let g:oselas_gcc_solib_paths = s:oselas_gcc_root.'/'.s:oselas_gcc_lastname.'/lib/'.':'.
|
||||||
let g:analyser = s:oselas_gcc4_root . 'bin/'.s:oselas_gcc4_lastname.'-gcc'
|
\ s:oselas_gcc_root.'/sysroot-'.s:oselas_gcc_lastname.'/lib/'.':'.
|
||||||
let g:new_compiler = ' -DNEW_COMPILER=ON'
|
\ s:oselas_gcc_root.'/sysroot-'.s:oselas_gcc_lastname.'/usr/lib/'
|
||||||
|
" let $PATH = s:oselas_gcc_root.'/sysroot-'.s:oselas_gcc_lastname.'/usr/include'.':'.s:path_orig
|
||||||
|
let g:analyser = s:oselas_gcc4_root . 'bin/'.s:oselas_gcc4_lastname.'-gcc'
|
||||||
|
let g:dnew_compiler = ' -DNEW_COMPILER=ON'
|
||||||
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! g:Compiler_version()
|
function! g:Compiler_version()
|
||||||
@ -115,9 +135,23 @@ function! s:ProjectSet(project_type, project_base_dir)
|
|||||||
execute 'set path-=./**'
|
execute 'set path-=./**'
|
||||||
execute 'set path+=' . s:ProjectSrcDir.'/**'
|
execute 'set path+=' . s:ProjectSrcDir.'/**'
|
||||||
execute 'set path+=' . g:ProjectBuildDir.'/**'
|
execute 'set path+=' . g:ProjectBuildDir.'/**'
|
||||||
let s:jlink_path = '/home/stefan/opt/SEGGER/JLink_Linux_V654a_x86_64'
|
let s:jlink_path = '/home/stefan/opt/SEGGER/JLink_Linux_V796k_x86_64'
|
||||||
|
|
||||||
|
let s:use_invoke = v:false
|
||||||
|
|
||||||
if (g:project_type == 'dlcpro')
|
if (g:project_type == 'dlcpro')
|
||||||
|
let s:use_invoke = v:true
|
||||||
|
set wildignore-=**/firmware/src/device-control/**
|
||||||
|
set wildignore+=**/shg-firmware/**
|
||||||
|
" set titlestring=%<%t\ (%{expand('%:p:h')})%=compiler:\ %{Compiler_version()}
|
||||||
|
let g:DeviceIP = 'dlc_pro__040083'
|
||||||
|
call s:set_oselas_gcc()
|
||||||
|
let g:termdebugger = '/opt/OSELAS.Toolchain-2022.10.2/arm-v7a-linux-gnueabihf/gcc-12.3.1-glibc-2.33-binutils-2.39-kernel-5.4-sanitized/bin/arm-v7a-linux-gnueabihf-gdb'
|
||||||
|
let g:DebugRemote = v:true
|
||||||
|
command DlcproEmissionOn call s:DlcproEmission('1')
|
||||||
|
command DlcproEmissionOff call s:DlcproEmission('0')
|
||||||
|
command DlcproShutup call s:DlcproShutup()
|
||||||
|
elseif (g:project_type == 'dlcpro-old')
|
||||||
let s:Program = '/device-control/device-control'
|
let s:Program = '/device-control/device-control'
|
||||||
let s:Elffile = s:Program
|
let s:Elffile = s:Program
|
||||||
let g:ProgramRemote = '/opt/app/bin/device-control'
|
let g:ProgramRemote = '/opt/app/bin/device-control'
|
||||||
@ -200,6 +234,12 @@ function! s:ProjectSet(project_type, project_base_dir)
|
|||||||
let g:termdebugger = 'gdb'
|
let g:termdebugger = 'gdb'
|
||||||
let g:DebugRemote = v:false
|
let g:DebugRemote = v:false
|
||||||
elseif (g:project_type == 'topmode')
|
elseif (g:project_type == 'topmode')
|
||||||
|
let s:use_invoke = v:true
|
||||||
|
let g:DeviceIP = 'topmode_stefan'
|
||||||
|
call s:set_oselas_gcc4()
|
||||||
|
let g:termdebugger = '/opt/OSELAS.Toolchain-2022.10.2/arm-v7a-linux-gnueabihf/gcc-12.3.1-glibc-2.33-binutils-2.39-kernel-5.4-sanitized/bin/arm-v7a-linux-gnueabihf-gdb'
|
||||||
|
let g:DebugRemote = v:true
|
||||||
|
elseif (g:project_type == 'topmode-old')
|
||||||
let s:Program = '/topmode'
|
let s:Program = '/topmode'
|
||||||
let s:Elffile = s:Program
|
let s:Elffile = s:Program
|
||||||
let g:ProgramRemote = '/usr/toptica/topmode'
|
let g:ProgramRemote = '/usr/toptica/topmode'
|
||||||
@ -213,6 +253,10 @@ function! s:ProjectSet(project_type, project_base_dir)
|
|||||||
let g:SshOpts2 = ""
|
let g:SshOpts2 = ""
|
||||||
call s:set_oselas_gcc4()
|
call s:set_oselas_gcc4()
|
||||||
elseif (g:project_type == 'topmode-gui')
|
elseif (g:project_type == 'topmode-gui')
|
||||||
|
let s:use_invoke = v:true
|
||||||
|
let g:new_compiler = v:false
|
||||||
|
let g:DebugRemote = v:false
|
||||||
|
elseif (g:project_type == 'topmode-gui-old')
|
||||||
let s:Program = '/TOPAS_Topmode'
|
let s:Program = '/TOPAS_Topmode'
|
||||||
let s:Elffile = s:Program
|
let s:Elffile = s:Program
|
||||||
let s:makegoals = []
|
let s:makegoals = []
|
||||||
@ -249,6 +293,18 @@ function! s:ProjectSet(project_type, project_base_dir)
|
|||||||
let g:GccRoot = '/home/stefan/opt/gcc/gcc-arm-none-eabi-9-2020-q2-update'
|
let g:GccRoot = '/home/stefan/opt/gcc/gcc-arm-none-eabi-9-2020-q2-update'
|
||||||
let g:termdebugger = g:GccRoot.'/bin/arm-none-eabi-gdb'
|
let g:termdebugger = g:GccRoot.'/bin/arm-none-eabi-gdb'
|
||||||
let $PATH = g:GccRoot.'/bin'.':'.s:path_orig
|
let $PATH = g:GccRoot.'/bin'.':'.s:path_orig
|
||||||
|
elseif (g:project_type == 'pfd')
|
||||||
|
let s:use_invoke = v:true
|
||||||
|
let g:ProjectBuildDir = s:ProjectSrcDir.'/.build/target/firmware/Debug'
|
||||||
|
let s:Program = '/pfd-firmware.bin'
|
||||||
|
let s:Elffile = '/pfd-firmware.elf'
|
||||||
|
let s:makegoals = ['cmake', 'build', 'unit_tests', 'cdd', 'cubemx', 'jlink', 'gdb']
|
||||||
|
let s:makeprg = 'invoke -e build'
|
||||||
|
let g:DebugRemote = v:true
|
||||||
|
let g:GdbPort = '2331'
|
||||||
|
let g:GccRoot = '/home/stefan/opt/gcc/gcc-arm-none-eabi-10.3-2021.10'
|
||||||
|
let g:termdebugger = g:GccRoot.'/bin/arm-none-eabi-gdb'
|
||||||
|
let $PATH = g:GccRoot.'/bin'.':'.s:jlink_path.':'.s:path_orig
|
||||||
elseif (g:project_type == 'operation-panel-f1')
|
elseif (g:project_type == 'operation-panel-f1')
|
||||||
let g:stm32_target = 'STM32F10X'
|
let g:stm32_target = 'STM32F10X'
|
||||||
let s:Program = '/firmware/operation_panel_'.g:stm32_target.'.bin'
|
let s:Program = '/firmware/operation_panel_'.g:stm32_target.'.bin'
|
||||||
@ -325,9 +381,11 @@ function! s:ProjectSet(project_type, project_base_dir)
|
|||||||
augroup END
|
augroup END
|
||||||
|
|
||||||
function! s:DeviceFirmwareUpdate()
|
function! s:DeviceFirmwareUpdate()
|
||||||
if (g:project_type == 'dlcpro-can')
|
if s:use_invoke
|
||||||
|
execute "!invoke -e flash-and-run --target-ip ".g:DeviceIP
|
||||||
|
elseif (g:project_type == 'dlcpro-can')
|
||||||
call s:DeviceUpdateProgramLinux()
|
call s:DeviceUpdateProgramLinux()
|
||||||
elseif ((g:project_type == 'digifalc') || (g:project_type == 'servoboard') || (g:project_type == 'dl-motor'))
|
elseif ((g:project_type == 'digifalc') || (g:project_type == 'servoboard') || (g:project_type == 'dl-motor') || (g:project_type == 'pfd'))
|
||||||
call s:JLinkFlashProgram()
|
call s:JLinkFlashProgram()
|
||||||
else
|
else
|
||||||
call s:DeviceFirmwareUpdateStartLinux()
|
call s:DeviceFirmwareUpdateStartLinux()
|
||||||
@ -362,14 +420,29 @@ endfunction
|
|||||||
" Make
|
" Make
|
||||||
" ====
|
" ====
|
||||||
function! GetAllMakeCompletions(ArgLead, CmdLine, CursorPos)
|
function! GetAllMakeCompletions(ArgLead, CmdLine, CursorPos)
|
||||||
return join(s:makegoals + s:makeopts + glob(a:ArgLead.'*', 1, 1), "\n")
|
if s:use_invoke
|
||||||
|
let l:makegoals = split(system('invoke targets'))
|
||||||
|
let l:invoke_targets = ['--target']
|
||||||
|
return join(l:makegoals + l:invoke_targets + glob(a:ArgLead.'*', 1, 1), "\n")
|
||||||
|
else
|
||||||
|
return join(s:makegoals + s:makeopts + glob(a:ArgLead.'*', 1, 1), "\n")
|
||||||
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:Make(args, async_mode)
|
function! s:Make(args, async_mode)
|
||||||
let &makeprg = s:makeprg
|
|
||||||
call asyncrun#quickfix_toggle(10, 1)
|
call asyncrun#quickfix_toggle(10, 1)
|
||||||
" execute 'AsyncRun -mode='.a:async_mode.' -save=2 -program=make @ --directory='.g:ProjectBuildDir.' '.a:args
|
if s:use_invoke
|
||||||
execute 'AsyncRun -mode='.a:async_mode.' -save=2 -program=make -cwd='.g:ProjectBuildDir. ' @ '.a:args
|
" let l:makeprg = 'invoke -e build --project '.g:project_type
|
||||||
|
let l:makeprg = 'invoke -e build'
|
||||||
|
if g:new_compiler
|
||||||
|
let l:makeprg .= ' --new-compiler'
|
||||||
|
endif
|
||||||
|
let &makeprg = l:makeprg
|
||||||
|
execute 'AsyncRun -mode='.a:async_mode.' -save=2 -program=make @ '.a:args
|
||||||
|
else
|
||||||
|
let &makeprg = s:makeprg
|
||||||
|
execute 'AsyncRun -mode='.a:async_mode.' -save=2 -program=make -cwd='.g:ProjectBuildDir. ' @ '.a:args
|
||||||
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:MakeTestBuild()
|
function! s:MakeTestBuild()
|
||||||
@ -396,41 +469,52 @@ function! s:MakeCheck(filename, async_mode)
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:Cmake(options, async_mode)
|
function! s:Cmake(options, async_mode)
|
||||||
if !isdirectory(g:ProjectBuildDir)
|
if s:use_invoke
|
||||||
call mkdir(g:ProjectBuildDir)
|
let l:options = a:options.' --project '.g:project_type
|
||||||
|
if g:new_compiler
|
||||||
|
let l:options .= ' --new-compiler'
|
||||||
|
else
|
||||||
|
let l:options .= ' --no-new-compiler'
|
||||||
|
endif
|
||||||
|
execute '!echo "invoke cmake '.l:options.'"'
|
||||||
|
execute 'AsyncRun -mode='.a:async_mode.' -save=2 @ invoke -e cmake '.l:options
|
||||||
|
else
|
||||||
|
if !isdirectory(g:ProjectBuildDir)
|
||||||
|
call mkdir(g:ProjectBuildDir)
|
||||||
|
endif
|
||||||
|
execute "!rm -f ".g:ProjectBuildDir."/cmake-cmd*"
|
||||||
|
call asyncrun#quickfix_toggle(10, 1)
|
||||||
|
let args = ""
|
||||||
|
let args .= " ../".g:ProjectSrcDirRel."/"
|
||||||
|
if (g:project_type == 'decof')
|
||||||
|
let args .= "/targets/simulator"
|
||||||
|
endif
|
||||||
|
let args .= " --graphviz=dependencies.dot"
|
||||||
|
let args .= " ".a:options
|
||||||
|
let args .= " -DCMAKE_EXPORT_COMPILE_COMMANDS=1"
|
||||||
|
if ((g:project_type == 'dlcpro-old') || (g:project_type == 'dlcpro-tui'))
|
||||||
|
let args .= " -DCMAKE_TOOLCHAIN_FILE=../".g:ProjectSrcDirRel."/Toolchain-target.cmake"
|
||||||
|
let args .= " -DBUILD_TARGET=target"
|
||||||
|
let args .= g:dnew_compiler
|
||||||
|
elseif (g:project_type == 'dlcpro-tui-simulator')
|
||||||
|
let args .= " -DBUILD_TARGET=simulation"
|
||||||
|
let args .= " -DQT5_INSTALL_PATH=/usr/lib/x86_64-linux-gnu/qt5"
|
||||||
|
elseif (g:project_type == 'topmode')
|
||||||
|
let args .= " -DCMAKE_TOOLCHAIN_FILE=../".g:ProjectSrcDirRel."/Toolchain-target.cmake"
|
||||||
|
let args .= " -DSYSROOT=~/topmode/topmode-sdk/sysroot-target"
|
||||||
|
elseif (g:project_type == 'topmode-gui')
|
||||||
|
elseif ((g:project_type == 'digifalc') || (g:project_type == 'servoboard') || (g:project_type == 'dl-motor'))
|
||||||
|
let args .= " -G Ninja"
|
||||||
|
let args .= " -DCMAKE_TOOLCHAIN_FILE=../".g:ProjectSrcDirRel."/GNU\\ Arm\\ Embedded.toolchain.cmake"
|
||||||
|
elseif ((g:project_type == 'operation-panel-f1') || (g:project_type == 'operation-panel-f4'))
|
||||||
|
let args .= " -DCMAKE_TOOLCHAIN_FILE=../".g:ProjectSrcDirRel."/gnu-arm-none-eabi.toolchain.cmake"
|
||||||
|
let args .= " -DOPC_TARGET=".g:stm32_target
|
||||||
|
elseif (g:project_type == 'decof')
|
||||||
|
let args .= " -DCMAKE_TOOLCHAIN_FILE=../".g:ProjectSrcDirRel."/ci/Toolchain-dlcpro-target.cmake"
|
||||||
|
endif
|
||||||
|
execute '!echo "cmake '.args.'" > ' g:ProjectBuildDir."/cmake_cmd"
|
||||||
|
execute 'AsyncRun -mode='.a:async_mode.' -save=2 -cwd='.g:ProjectBuildDir.' @ cmake '.args
|
||||||
endif
|
endif
|
||||||
execute "!rm -f ".g:ProjectBuildDir."/cmake-cmd*"
|
|
||||||
call asyncrun#quickfix_toggle(10, 1)
|
|
||||||
let args = ""
|
|
||||||
let args .= " ../".g:ProjectSrcDirRel."/"
|
|
||||||
if (g:project_type == 'decof')
|
|
||||||
let args .= "/targets/simulator"
|
|
||||||
endif
|
|
||||||
let args .= " --graphviz=dependencies.dot"
|
|
||||||
let args .= " ".a:options
|
|
||||||
let args .= " -DCMAKE_EXPORT_COMPILE_COMMANDS=1"
|
|
||||||
if ((g:project_type == 'dlcpro') || (g:project_type == 'dlcpro-tui'))
|
|
||||||
let args .= " -DCMAKE_TOOLCHAIN_FILE=../".g:ProjectSrcDirRel."/Toolchain-target.cmake"
|
|
||||||
let args .= " -DBUILD_TARGET=target"
|
|
||||||
let args .= g:new_compiler
|
|
||||||
elseif (g:project_type == 'dlcpro-tui-simulator')
|
|
||||||
let args .= " -DBUILD_TARGET=simulation"
|
|
||||||
let args .= " -DQT5_INSTALL_PATH=/usr/lib/x86_64-linux-gnu/qt5"
|
|
||||||
elseif (g:project_type == 'topmode')
|
|
||||||
let args .= " -DCMAKE_TOOLCHAIN_FILE=../".g:ProjectSrcDirRel."/Toolchain-target.cmake"
|
|
||||||
let args .= " -DSYSROOT=~/topmode/topmode-sdk/sysroot-target"
|
|
||||||
elseif (g:project_type == 'topmode-gui')
|
|
||||||
elseif ((g:project_type == 'digifalc') || (g:project_type == 'servoboard') || (g:project_type == 'dl-motor'))
|
|
||||||
let args .= " -G Ninja"
|
|
||||||
let args .= " -DCMAKE_TOOLCHAIN_FILE=../".g:ProjectSrcDirRel."/GNU\\ Arm\\ Embedded.toolchain.cmake"
|
|
||||||
elseif ((g:project_type == 'operation-panel-f1') || (g:project_type == 'operation-panel-f4'))
|
|
||||||
let args .= " -DCMAKE_TOOLCHAIN_FILE=../".g:ProjectSrcDirRel."/gnu-arm-none-eabi.toolchain.cmake"
|
|
||||||
let args .= " -DOPC_TARGET=".g:stm32_target
|
|
||||||
elseif (g:project_type == 'decof')
|
|
||||||
let args .= " -DCMAKE_TOOLCHAIN_FILE=../".g:ProjectSrcDirRel."/ci/Toolchain-dlcpro-target.cmake"
|
|
||||||
endif
|
|
||||||
execute '!echo "cmake '.args.'" > ' g:ProjectBuildDir."/cmake_cmd"
|
|
||||||
execute 'AsyncRun -mode='.a:async_mode.' -save=2 -cwd='.g:ProjectBuildDir.' @ cmake '.args
|
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:Ctest(args, async_mode)
|
function! s:Ctest(args, async_mode)
|
||||||
@ -544,7 +628,12 @@ function! s:DeviceFirmwareUpdateStartLinux()
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:DeviceStartGdbServer()
|
function! s:DeviceStartGdbServer()
|
||||||
if ((g:project_type == 'digifalc') || (g:project_type == 'servoboard') || (g:project_type == 'dl-motor'))
|
if (g:project_type == 'pfd')
|
||||||
|
call system('killall --quiet JLinkGDBServer')
|
||||||
|
call s:Call_and_log('invoke -e jlink&')
|
||||||
|
autocmd User TermdebugStopPost call system('killall --quiet JLinkGDBServer')
|
||||||
|
sleep 1
|
||||||
|
elseif ((g:project_type == 'digifalc') || (g:project_type == 'servoboard') || (g:project_type == 'dl-motor'))
|
||||||
call s:Call_and_log('pkill --full JLinkGDBServer')
|
call s:Call_and_log('pkill --full JLinkGDBServer')
|
||||||
call s:Call_and_log(s:jlink_path.'/JLinkGDBServer -if SWD -device STM32H743ZI &')
|
call s:Call_and_log(s:jlink_path.'/JLinkGDBServer -if SWD -device STM32H743ZI &')
|
||||||
elseif ((g:project_type == 'operation-panel-f1') || (g:project_type == 'operation-panel-f4'))
|
elseif ((g:project_type == 'operation-panel-f1') || (g:project_type == 'operation-panel-f4'))
|
||||||
@ -558,7 +647,7 @@ function! s:DeviceStartGdbServer()
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:DeviceStartGdbServerAttach()
|
function! s:DeviceStartGdbServerAttach()
|
||||||
if ((g:project_type == 'digifalc') || (g:project_type == 'servoboard') || (g:project_type == 'dl-motor'))
|
if ((g:project_type == 'digifalc') || (g:project_type == 'servoboard') || (g:project_type == 'dl-motor') || (g:project_type == 'pfd'))
|
||||||
else
|
else
|
||||||
call s:Call_and_log('pkill --full gdbserver')
|
call s:Call_and_log('pkill --full gdbserver')
|
||||||
call s:Call_and_log('ssh -o RemoteCommand=none '.g:SshOpts.' -L localhost:'.g:GdbPort.':localhost:'.g:GdbPort.' "root@'.g:DeviceIP.'" '.g:SshOpts2.' "gdbserver localhost:'.g:GdbPort.' --attach \`pidof '.fnamemodify(g:ProgramRemote, ':t').'\` &"')
|
call s:Call_and_log('ssh -o RemoteCommand=none '.g:SshOpts.' -L localhost:'.g:GdbPort.':localhost:'.g:GdbPort.' "root@'.g:DeviceIP.'" '.g:SshOpts2.' "gdbserver localhost:'.g:GdbPort.' --attach \`pidof '.fnamemodify(g:ProgramRemote, ':t').'\` &"')
|
||||||
@ -600,52 +689,66 @@ endfunction
|
|||||||
|
|
||||||
let g:DlcproBasePath = "/jenkins/workspace/pro--firmware_release_1.9.0-DCESJ5C5R577IG5QFEWTML22UFDDZCJDGFLMDA4DCD3V2ZAGVEJA/source/"
|
let g:DlcproBasePath = "/jenkins/workspace/pro--firmware_release_1.9.0-DCESJ5C5R577IG5QFEWTML22UFDDZCJDGFLMDA4DCD3V2ZAGVEJA/source/"
|
||||||
function! s:DeviceDebug(attach)
|
function! s:DeviceDebug(attach)
|
||||||
if (a:attach == 0)
|
if s:use_invoke
|
||||||
" let r = s:DeviceFirmwareUpdate()
|
if v:DebugRemote
|
||||||
let r = 0
|
execute "!invoke -e gdb-server --target-ip=".g:DeviceIP
|
||||||
if (r != 0)
|
autocmd! User TermdebugStartPost
|
||||||
echoerr "DeviceFirmwareUpdate() failed!"
|
autocmd! User TermdebugStopPost
|
||||||
else
|
autocmd User TermdebugStartPost call term_sendkeys('',"source gdb-connect.txt\n")
|
||||||
if (g:DebugRemote == v:false)
|
autocmd User TermdebugStopPost call system('pkill --full gdbserver')
|
||||||
call s:StartDebugger(g:Elffile, a:attach)
|
|
||||||
call s:SendToDebugger('file '.g:Elffile)
|
|
||||||
call s:SendToDebugger('break main')
|
|
||||||
call s:SendToDebugger('run')
|
|
||||||
else
|
|
||||||
call s:DeviceStartGdbServer()
|
|
||||||
sleep 1
|
|
||||||
call s:StartDebugger(g:Elffile, a:attach)
|
|
||||||
sleep 1
|
|
||||||
call s:SendToDebugger('target extended-remote localhost:'.g:GdbPort)
|
|
||||||
sleep 1
|
|
||||||
if exists("g:ProgramRemote")
|
|
||||||
call s:SendToDebugger('set remote exec-file '.g:ProgramRemote)
|
|
||||||
sleep 1
|
|
||||||
endif
|
|
||||||
call s:SendToDebugger('file '.g:Elffile)
|
|
||||||
call s:SendToDebugger('set solib-search-path '. g:oselas_gcc_solib_paths)
|
|
||||||
if ((g:project_type == 'operation-panel-f1') || (g:project_type == 'operation-panel-f4'))
|
|
||||||
call s:SendToDebugger('y')
|
|
||||||
call s:SendToDebugger('monitor reset')
|
|
||||||
call s:SendToDebugger('load')
|
|
||||||
call s:SendToDebugger('break main')
|
|
||||||
else
|
|
||||||
call s:SendToDebugger('break main')
|
|
||||||
sleep 1
|
|
||||||
call s:SendToDebugger('run')
|
|
||||||
endif
|
|
||||||
execute '2hide'
|
|
||||||
endif
|
|
||||||
endif
|
endif
|
||||||
|
Termdebug
|
||||||
else
|
else
|
||||||
call s:DeviceStartGdbServerAttach()
|
if (a:attach == 0)
|
||||||
call s:StartDebugger(a:attach)
|
" let r = s:DeviceFirmwareUpdate()
|
||||||
call s:SendToDebugger('target remote localhost:'.g:GdbPort)
|
let r = 0
|
||||||
" get remote src path with gdb: info sources or gdb: break main
|
if (r != 0)
|
||||||
call s:SendToDebugger('set substitute-path '.g:DlcproBasePath.' '.s:ProjectSrcDir)
|
echoerr "DeviceFirmwareUpdate() failed!"
|
||||||
endif
|
else
|
||||||
|
if (g:DebugRemote == v:false)
|
||||||
|
call s:StartDebugger(g:Elffile, a:attach)
|
||||||
|
call s:SendToDebugger('file '.g:Elffile)
|
||||||
|
call s:SendToDebugger('break main')
|
||||||
|
call s:SendToDebugger('run')
|
||||||
|
else
|
||||||
|
call s:DeviceStartGdbServer()
|
||||||
|
sleep 1
|
||||||
|
call s:StartDebugger(g:Elffile, a:attach)
|
||||||
|
sleep 1
|
||||||
|
call s:SendToDebugger('target extended-remote localhost:'.g:GdbPort)
|
||||||
|
sleep 1
|
||||||
|
if exists("g:ProgramRemote")
|
||||||
|
call s:SendToDebugger('set remote exec-file '.g:ProgramRemote)
|
||||||
|
sleep 1
|
||||||
|
endif
|
||||||
|
call s:SendToDebugger('file '.g:Elffile)
|
||||||
|
if (g:project_type != 'pfd')
|
||||||
|
call s:SendToDebugger('set solib-search-path '. g:oselas_gcc_solib_paths)
|
||||||
|
endif
|
||||||
|
if ((g:project_type == 'operation-panel-f1') || (g:project_type == 'operation-panel-f4'))
|
||||||
|
call s:SendToDebugger('y')
|
||||||
|
call s:SendToDebugger('monitor reset')
|
||||||
|
call s:SendToDebugger('load')
|
||||||
|
call s:SendToDebugger('break main')
|
||||||
|
else
|
||||||
|
call s:SendToDebugger('break main')
|
||||||
|
sleep 1
|
||||||
|
call s:SendToDebugger('run')
|
||||||
|
endif
|
||||||
|
" Close Program window
|
||||||
|
execute '2hide'
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
call s:DeviceStartGdbServerAttach()
|
||||||
|
call s:StartDebugger(a:attach)
|
||||||
|
call s:SendToDebugger('target remote localhost:'.g:GdbPort)
|
||||||
|
" get remote src path with gdb: info sources or gdb: break main
|
||||||
|
call s:SendToDebugger('set substitute-path '.g:DlcproBasePath.' '.s:ProjectSrcDir)
|
||||||
|
endif
|
||||||
|
|
||||||
" call s:SendToDebugger('set can-use-hw-watchpoints 0')
|
" call s:SendToDebugger('set can-use-hw-watchpoints 0')
|
||||||
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" ================
|
" ================
|
||||||
@ -723,8 +826,6 @@ function! s:DlcproRegtestCmd(ip, powerswitch_ip, powerplug, laser_count, laser_t
|
|||||||
\"--powerswitch_passwd=nimda ".
|
\"--powerswitch_passwd=nimda ".
|
||||||
\"--power_plug=".a:powerplug." ".
|
\"--power_plug=".a:powerplug." ".
|
||||||
\"--power_plug_fan=8"." ".
|
\"--power_plug_fan=8"." ".
|
||||||
\"--version_file=".archive_dir."/VERSION ".
|
|
||||||
\"--firmware_file=".archive_dir."/DLCpro-archive.fw ".
|
|
||||||
\"--license_tool=".licensetool." ".
|
\"--license_tool=".licensetool." ".
|
||||||
\"--license_keyfile=".s:ProjectSrcDir."/license/libdlcprolicense/rsa-private.key ".
|
\"--license_keyfile=".s:ProjectSrcDir."/license/libdlcprolicense/rsa-private.key ".
|
||||||
\"--log-cli-level=INFO "
|
\"--log-cli-level=INFO "
|
||||||
|
Loading…
x
Reference in New Issue
Block a user