Перейти к содержанию
    

давайте сделаем на Питоне отладку под stm8

Привет.

Времени мало ((

Исходные.

1. https://github.com/vdudouyt/stm8flash прошивальщик

почитал - вроде все понятно и элементарно

2. Поставил PyUSB https://github.com/walac/pyusb/blob/master/docs/tutorial.rst

разбираюсь. вроде работает. распознает. stlink v1

 

дальше.

затачивать это все под GDB вроде неинтересно, поскольку GDB для stm8 мы вряд ли дождемся.

------

Лично мне интересно, например, запустить на малине скрипт и работать с удаленной отладкой как с texane st-util

я в конце концов психанул и перешел с глубоко дурного эклипса на отладку под GDB с командным файлом.

но там свой птичий язык. Тем не менее - это удобно. не нужно предварительно подымать никаких консолей и прочая прочая. просто смотрим содержимое переменной.

:biggrin: на шагание нету времени.

---

 

что туда удобнее в плане функционала?

 

наверное, оформить в виде модуля с простым API чтобы минимум писанины было?

как считаете?

 

в общем, ищу единомышленников.

 

забыл же ж уточнить.

это все под файлы, сгенеренные SDCC.

Изменено пользователем _Pasha

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

помогите с конфигом для BOT коммент в тексте

import usb.core
import usb.util

class USB_BOT_Layer:
Dev=None
def __init__ (vendor,product,self):
	dev = usb.core.find(idVendor=0x0483, idProduct=0x3744)
	# was it found?
	if dev is None:
		raise ValueError('Device not found')
	dev.set_configuration()
	# get an endpoint instance
	cfg = dev.get_active_configuration()
	# get interface как его правильно получать? кто уже делал?
	print cfg
def write(data="",self):
	pass
def read(self):
	pass

class STM8:
Core={}
SWIM={}
Debug={}
USB=None
def __init__(self):
	self.Core={
	'Size:':11, 
	'A':0x7f00,
	'PCE_Reg':0x7F01,
	'PCH_Reg':0x7F02,
	'PCL_Reg':0x7F03,
	'XH_Reg':0x7F04,
	'XL_Reg':0x7F05,
	'YH_Reg':0x7F06,
	'YL_Reg':0x7F07,
	'SPH_Reg':0x7F08,
	'SPL_Reg':0x7F09,
	'CC_Reg':0x7F0A
	}
	self.SWIM={
	'CSR': {
		'addr':0x7F80,
		'PRI' : 0,
		'HSIT': 1,
		'RST ': 2,
		'OSCOFF':3,
		'HS':4,
		'SWIM_DM':5,
		'NO_ACCESS':6,
		'SAFE_MASK':7,
		},
	'CLK_CCR':{
		'addr':0x50CD,
		'SWIMCLK':0
		}
	}
	self.Debug={
	'BK1RE':0x7f90,
	'BK1RH':0x7f91,
	'BK1RL':0x7f92,
	'BK2RE':0x7f93,
	'BK2RH':0x7f94,
	'BK2RL':0x7f95,
	'CR1':0x7f96,
	'CR2':0x7f97,
	'CSR1':0x7f98,
	'CSR2':0x7f99,
	'ENFCTR':0x7f9a 
	}
	USB = USB_BOT_Layer(0x0483,0x3744)

т.е. мне нужно получить два эндпоинта, не заблудившись в интерфейсах (т.е. кошерно, чтобы всегда работало)

потом read write будет с ними работать

 

Изменено пользователем _Pasha

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...