Ho provato a chiamare un processo tramite Python con diversi argomenti. L'esecuzione del file batch funziona correttamente, ma la traduzione in Python mi fa urlare. Ecco il contenuto del file batch:L'esecuzione di un sottoprocesso non riesce
"C:\Program Files\bin\cspybat" "C:\Program Files\bin\armproc.dll" "C:\Program Files\bin\armjlink.dll" "C:\Documents and Settings\USER\Desktop\CAL\testing\Verification\FRT\Code\TC1\Output\Genericb\Debug\Exe\Gen.out" --download_only --backend -B "--endian=little" "--cpu=Cortex-M3" "--fpu=None" "-p" "C:\Program Files\CONFIG\debugger\ST\iostm32f10xxb.ddf" "--drv_verify_download" "--semihosting" "--device=STM32F10xxB" "-d" "jlink" "--drv_communication=USB0" "--jlink_speed=auto" "--jlink_initial_speed=32" "--jlink_reset_strategy=0,0"
L'eseguibile che viene eseguito dal file batch è denominato cspybat
. L'output dell'eseguibile fornisce le informazioni: All parameters after
- backend are passed to the back end
.
Si noti inoltre che alcuni dei parametri sono stringhe e altri no.
Soluzione
che funziona per me ora:
""" MCU flashing function"""
params = [r"C:\Program Files\bin\cspy",
r"C:\Program Files\bin\arpro.dll",
r"C:\Program Files\bin\arjink.dll",
r"C:\Documents and Settings\USER\Desktop\Exe\GenerV530b.out",
"--download_only", "--backend", "-B", "--endian=little", "--cpu=Cort3", "--fpu=None", "-p",
r"C:\Program Files\CONFIG\debugger\ST\iostm32f10xxb.ddf",
"--drv_verify_download", "--semihosting", "--device=STM32F10xxB", "-d", "jlink", "--drv_communication=USB0",
"--jlink_speed=auto", "--jlink_initial_speed=32", "--jlink_reset_strategy=0,0" ]
print(subprocess.list2cmdline(params))
p = subprocess.Popen(subprocess.list2cmdline(params))
Puoi pubblicare un po 'di codice che è stato utilizzato? –
vedi sotto ....... – binaryguy
@ wanderameise: non pubblicare informazioni che chiariscano la domanda come una "risposta". NON è una risposta. È un'informazione importante che deve far parte della domanda in modo da poter aiutare. CANCELLA la tua mancata risposta e AGGIORNA la tua domanda con le informazioni aggiuntive. –