Python Forum
Python cmd function call from script
Thread Rating:
  • 1 Vote(s) - 3 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Python cmd function call from script
#11
(Feb-14-2017, 05:58 PM)buran Wrote: yes, I think you need to specify the full path in this case

Also, looking at the script,  here is some code that should allow to use it to erase, write and verify (based on your cmd line)

NOTE THAT IT IS NOT TESTED SO USE IT ON YOUR OWN RISK, but should help you start and experiment

import smt32loader as smtl


# default address and baudrate, but in the script the defaults are set in if name == '_-main__'
# so we need to set up it here
address = 0x08000000
#baudrate = 115200


# default QUITE is 20, but if run the script from cmd and don't supply -V or -q, QUITE=5
# mdebug is commented right now
smtl.QUITE = 5 

port = '/dev/ttyAMA0'
bin_file = 'sthdbg.bin' # full path should be here

cmd = smtl.CommandInterface()
cmd.open(port)
# smtl.mdebug(10, "Open port %(port)s, baud %(baud)d" % {'port':port, 'baud':baud})
try:
   try:
       cmd.initChip()
   except:
       print "Can't init. Ensure that BOOT0 is enabled and reset device"
   bootversion = cmd.cmdGet()
   # smtl.mdebug(0, "Bootloader version %X" % bootversion)
   id = cmd.cmdGetID()
   # smtl.mdebug(0, "Chip id: 0x%x (%s)" % (id, smtl.chip_ids.get(id, "Unknown")))

# data
   data = map(lambda c: ord(c), file(bin_file, 'rb').read())

# erase
   cmd.cmdEraseMemory()

# write
   cmd.writeMemory(address, data)

# verify
   verify = cmd.readMemory(address, len(data))
   if(data == verify):
       print "Verification OK"
   else:
       print "Verification FAILED"
       print str(len(data)) + ' vs ' + str(len(verify))
       for i in xrange(0, len(data)):
           if data[i] != verify[i]:
               print hex(i) + ': ' + hex(data[i]) + ' vs ' + hex(verify[i])

finally:
   cmd.releaseChip()
there are at least two parts of the code, that I would write differently - line 31 and the loop in lines 42-44, but that's how it is in the original code

Thanks for your answer and suggestions. I did some modifications and it works as it should.
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Is possible to run the python command to call python script on linux? cuten222 6 720 Jan-30-2024, 09:05 PM
Last Post: DeaD_EyE
  Is there a *.bat DOS batch script to *.py Python Script converter? pstein 3 3,185 Jun-29-2023, 11:57 AM
Last Post: gologica
  How do I call sys.argv list inside a function, from the CLI? billykid999 3 788 May-02-2023, 08:40 AM
Last Post: Gribouillis
  Call a bash script from within a Python programme Pedroski55 6 2,436 Dec-06-2021, 01:53 PM
Last Post: DeaD_EyE
  string function doesn't work in script ClockPillow 3 2,386 Jul-13-2021, 02:47 PM
Last Post: deanhystad
  Passing flags to python script, through a function xbit 4 3,967 Apr-20-2021, 06:32 AM
Last Post: ndc85430
  how to call an object in another function in Maya bstout 0 2,075 Apr-05-2021, 07:12 PM
Last Post: bstout
  In this function y initially has no value, but a call to foo() gives no error. Why? Pedroski55 8 3,467 Dec-19-2020, 07:30 AM
Last Post: ndc85430
  Struggling for the past hour to define function and call it back godlyredwall 2 2,208 Oct-29-2020, 02:45 PM
Last Post: deanhystad
  list call problem in generator function using iteration and recursive calls postta 1 1,892 Oct-24-2020, 09:33 PM
Last Post: bowlofred

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020