Tôi đã cố gắng gọi một quy trình qua Python với một vài đối số. Thực thi các tập tin batch chính nó hoạt động tốt cho tôi, nhưng dịch nó vào Python làm cho tôi hét lên. Dưới đây là nội dung của tệp lô:Thực thi một quy trình con không thành công
"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"
Tệp thi hành được chạy theo tập tin thực thi có tên cspybat
. Đầu ra của tệp thực thi cung cấp thông tin: All parameters after
--backend are passed to the back end
.
Cũng lưu ý rằng một số tham số là chuỗi và một số không.
Giải pháp
đó làm việc cho tôi ngay bây giờ:
""" 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))
Bạn có thể gửi một số mã thực tế mà bạn sử dụng? –
xem bên dưới ....... – binaryguy
@ wanderameise: Không đăng thông tin làm rõ câu hỏi là "câu trả lời". Nó KHÔNG phải là câu trả lời. Đó là thông tin quan trọng phải là một phần của câu hỏi để chúng tôi có thể trợ giúp. Vui lòng XÓA câu trả lời của bạn và CẬP NHẬT câu hỏi của bạn với thông tin bổ sung. –