Intenté llamar a un proceso a través de Python con varios argumentos. Ejecutar el archivo por lotes en sí funciona bien para mí, pero traducirlo a Python me hace gritar. Aquí el contenido del archivo por lotes:La ejecución de un subproceso falla
"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"
el ejecutable que se ejecuta por el archivo por lotes se denomina cspybat
. La salida del archivo ejecutable proporciona la información: All parameters after
--backend are passed to the back end
.
También tenga en cuenta que algunos de los parámetros son cadenas y algunos no.
Solución
que funcione para mí ahora:
""" 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))
Se puede publicar algún código real que utilizó? –
vea a continuación ....... – binaryguy
@ wanderameise: No publique información que aclare la pregunta como una "respuesta". NO es una respuesta. Es importante que la información sea parte de la pregunta para que podamos ayudar. Por favor, elimine su falta de respuesta y ACTUALICE su pregunta con la información adicional. –