Программирование ARM. Eclipse, Keil,IAR,CooCox - всё сюда.

  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #261

Странное событие... Не, у меня нет пробоев - я всё прозвонил.
Похоже, действительно, кварц. Есть все питания, есть контакты, но нет связи. Ваачпе. ЮСБ видит 1,5кОм резистор и детектит неизвестное устройство, на чем их взаимопонимание и заканчивается.

Keil - странная, всё-таки, зверушка.
Ему, блядь, правила хорошего тона подавай, переменные, блядь, в хедер не суй, зато функция с объявленным целочисленным типом великолепно компилируется, если не возвращает значение.
Ну не дятел он?

P.S. И эти люди запрещают мне ковыряться в носу.



ЫЫЫЫ.

Народ, а как вы в кейле передаете в функцию указатель на массив?
Вот есть у меня функция по кодировке десятичного числа в ASCII строку.
Строка - в массиве.
Код:
uint8_t tempstr[5];
encodeASCII (&tempstr, 32765);

//------ где-то в совсем другом файле ---

void encodeASCII (uint8_t *psy[], uint16_t code)
{
 // и тут как напедалили кода
}

Разіменовівать сука отказівается. Чего ему, уроду, ещё надо?

Он считает, что передает параметр aka unsigned char* в функцию, которая принимает unsigned char**...

Шозанах? Указатель на указатель? Нихуя, убрал указатели, передал просто имя массива - тоже авотхуй...

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

А явным образом он охуевает, и считает, что я указатель на указатель показал
Сука, из 3х способов из учебника он почему-то выбирает 4-й

P.S. Не, оно конечно удобно - не надо ебаться с указателями, работаешь с массивами, как с обычной переменной, беря его из аргумента, но, блядь... может давайте уже и структуры тоже передавать начнем? Не, ну правда, нахуй вообще те указатели?
 
Останнє редагування:
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #262
Все он правильно делает. При передаче указателя на массив ты можешь пойти двумя путями:
или так func( &var[0]) в явном виде объявив указатель на нулевой элемент
или так func(var) нифига не объявляя

Оба способа соответствуют стандарту С89
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #263
P.P.S Причем, только в объявлении и прототипе функции он это делает.
В вызове - пожалуйста, или тупо имя без скобочков, или &имя[0] - одинаково хавает.
А вот в прототипе указатель на массив назначить аргументом - нимаги. Только голый массив, или он посчитает имя указателем и неявно преобразует * к **.
Больной нахуй...


При вызове - да, и так и так работает. А в прототипе он имя массива автоснабжает значком *. Мне его он не показывает. Таким образом принимать он будет var**. Нельзя * в прототипе перед массивом ставить, ели надо сам массив передавать.
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #264
а там точно на входе должен быть массив указателей на указатель? вернее нахер он там всрался?
скобочки *psy[] явно лишние
void encodeASCII (uint8_t *psy, uint16_t code)
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #265

В объявлении работает и так и так. Я ж дебагером смотрю на результат функции - всё там происходит нормально.
[] можно ставить, это он понимает. Можно не ставить - тоже понимает.

Вроде как передавать можно 2-мя способами.
func (int n[]) {...}
func (int* n) {.....}

бля... я в следующий раз скринить буду такие чудеса.
Усё, со скобками уже не катит. Теперь всё по классике uint8_t *psy[] - выдает болт. Вернее, оно выдает что и положено - массив указателей, соответственно, код в функции не работает.

А днём, когда я писал - работал и в том и в том виде.

P.S. Рождается вопрос - а как отучить кейл от "забывчивости"?
Он по ходу действительно забывает учитывать правки, получается, что я пишу, а компилируется несколько другой код, где написанного, как бы, и нет.
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #266
ноно. Это надо ребилд жмыхать. Я не помню, как там с зависимостями работать. Я когда сидел в кейле тупо ребилдил(clean&build) и все. А чтобы не дергалась большая масса исходников - собирать неизменяемую часть в статик либы.
----
в общем я сколотил вместе все наличествующие system_stm32*.h stm32*.S унд stm32f*.h из всех HALов
сторонние либы - для вкуривания непонятных моментов.
теперь у меня файл #include "stm32.h"
сборник занимает 55 метров
так же к нему питоноскриптики завязанные на grep для облегчения понимания шо можно делать и шо низя внутри всего большого семейства.
при оказии выложу на gitlab

оставаться на уровне подобных либ нехоцца - сразу этот слой пускаю в игнор и забочусь о более высокоуровневых вещах, с которыми приходится работать.

в файлы от куба *.ioc никогда не заглядывал, думал шо там жоский xml
а там ваще лафа для парсинга назначений пинов. обалдеть
перепиленный gpio у меня выглядит
Код:
struct gpio_configuration
{
  unsigned open_drain:1;
  unsigned output:1;
  unsigned analog:1;
  unsigned alter:1;
  unsigned speed:2;
  unsigned pullup:1;
  unsigned pulldn:1;
  unsigned lock:1;
  unsigned altfunc:4;
};

/*config one pin*/
void gpio_pin_conf(							// perform config for 1 pin
	GPIO_TypeDef *gp,						// select port
	uint8_t	num,							// bit number
	uint8_t	value,							// initial value
	const struct gpio_configuration *conf);	// config

/*config pin group*/
void gpio_group_conf(		// group conf
	GPIO_TypeDef *gp,		// port
	uint16_t group,			// pin mask
	uint16_t value,			// initial value (masked by group) and atomically set & reset
	const struct gpio_configuration *conf);
usage:
Код:
void pwm_pins_setup(void)
{
	static const struct gpio_configuration cfg=
	{
		.alter = 1,	.altfunc = 2 //ALT =2 T1 function
	};
	// pins PA 6,7,8,9,10 PB0,1
	gpio_group_conf(GPIOA, 0x1F << 6, 0xFFFF, &cfg);
	gpio_group_conf(GPIOB, 3, 3, &cfg);
}
шо я таки хочу этим сказать. забейте ХУЙ на эти все задроченные *InitStructure и живите нормальной жизнью.
в стандарте gnu99
у нас весь 100% портабельный конфиг пинов умещается в 2 байта флеша.
Изменяемые параметры - маска и порт.
Так и то можно забить на это и задавать всё во флеше.
такая же участь ожидает некоторые другие общие IP, но там надо ближе к области применения, поскольку сферический конь spi нахер не нужен никому. нужна конкретика а не дрыгалка битиками с "понятными" названиями от индусов.
-------------------------------
 
Останнє редагування:
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #267
Главное чтоб от себя не добавлял
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #268

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

Главное чтоб от себя не добавлял

Та ну его нахер, я ж чуть моск не поломал с ним.
У меня крепнет желание перенести USB на кокос... Там вообще таких проблем нету. Он тупой шо AVR студия. И быстрее кейла заметно.

Времени не хватает, сцуко, хронически, но каждый раз убеждаешься, что мирясь с косяками - оно не экономится. В итоге его уходит больше, чем если бы сел и расколупал.
На противоположной чаше весов сидит жаба, и, сука, душит, ведь и кубик генерит исправно, и код, вроде, работает и какой-то уже написан...

Ебучая проблема выбора.

P.S.
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #269
https://s00.************/pics/pics_original/6/5/3/7227356.png

что у тебя за косяки с Кейлом. У меня нормально работет, не считая того глюка что я писал выше, ну и трабл с тем что он НАХУЙ НЕ ВИДИТ АЛГОРИТМА ПРОШИВКИ ПАДЛА!!!
А в остальном, ОК.
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #270
а я когда 5-й вышел - я его испугалси он падучий какой-то был.
вот все говорят на 4.7х ужасные вещи, а мне понравился. Стабильность
Писать именно текст там невозможно - но для этого есть другие вещи. Я пользуюсь geany везде - и под форточькой и под линухом. А в остальном - когда ничего не работает - открываю хршный ноут хз каких времен и кейл 4.73 спасает положение




кста. я тут приводил cdc от opencm3 6кб.
поскольку это довольно таки самостоятельная вещь (один коллбек и все едет искаропки) - можно собрать его в статик либу под несколько подсемейств да хоть под все - и забыть о нем надолго.
то же самое и с HID
а вот msc - то да. можно крупно
 
Останнє редагування:
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #271

Я когда сломался STlink - поставил J-link и тоже так было. Он на мидл не видел какого-то алгоритма.
Пришлось руками показывать


С ST-link этой проблемы небыло. Я даже не имел понятия где он там прописывается, просто всё сразу заработало.


Ну, msc кубик тоже генерит. На кубик есть доки на HAL.
opencm3 я, честно говоря, просто не понял в каком составе качать и в каком порядке подключать. Если как и HAL - то нужно ещё знать кто там за шо отвечает, курить мануалы и

По хорошему - если бы был тупо заголовочный файл с закоментированными строками и оно подключалось бы тупым раскомментированием #include на каждый узел - это была бы тема. Я не знаю, есть ли там такой.
Если его нет - потери времени не оправдываются, ибо в HAL я уже прилично вгрызся, и он валится прямо из куба - только выставляй конфигурацию и топчи кнопку. И то и то, при всём, работает. В этом случае рулит время.
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #272
Опа, опа, а шо означают надписи в колонке Origin? У меня все файлы MDK Core. Подпихивал вручную много раз и пох, не работает
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #273
кста, китайcи-жлинк по слухам некоторые вспоминают шо их ломали и посылают всех искать Шамбалу
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #274

Не имею понятия - оно такое было
Видимо, они ставятся с каким-то тулзом. STM32 Flash тулз, зрова на сеггер и т.д. У меня просто стоят все они и я не знаю из чего взялись эти строки.
Там стояло в общей сложности 5 IDE. Кокос, WS4, тру студио, IAR и кейл.
Сейчас стоит IAR, кейл и кокос, остальные выродки еклипса я удалил, но они все упорно ставили какие-то свои паки и дрова.
Не разобрать уже.


Без всяких слухов. Один такой у меня дома. Завтра, одухотворенный там, что прокатило сегодня с другим Жлинком - попробую не забыть его взять на работу и туда же засунуть. Вдруг он оживится.
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #275
У меня эти алгоритмы ставились отдельным паком на Кейл, там поддержка туевой хучи процов всевозможных производителей. А мне бы 5-6 штук на F10x серию, но чтоб работало, мля...
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #276

Я повторю совет - прошерстить менеджер пакетов. Там есть кнопочки "проверить апдейты"(кажется) и "update" (если есть апдейты).
У меня кейл обновился до 5.18 и я не жалеючи пространства жмакал апдейт на всё, на что он был, хотя мне кроме f10x нихрена и не надо было.
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #277
Не апдейтится, походу его все устраивает
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #278
Не апдейтится, походу его все устраивает

он сначала должен поискать и найти апдейты. Если они есть - тогда активируется кнопочко.

Но у меня эти карты памятей могли подтянуться и с другим софтом. Оригин - это значит, что STM влепил. Или с флэштулсом, или с другой IDE, потому как он дрова на СТлинк каждый раз поверх переставлял, а иногда - по 2 раза на 1 ИДЕ. Шо-то всё ставил и ставил. Выяснить нереально уже

У меня эта хрень лежит тута:
C:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Flash\STM32F10x_128.FLM

а MDK Core хранит своё файло тута:
(пример) C:\Keil_v5\ARM\flash\K8P5615UQA_x2.FLM

Может тебе их просто выложить?

Там есть вот это:
Что тебе выложить из него?


Пакдескриптор начинается так:
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #279
Ну до второй линейки я пока не дорос Давай первую
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #280
То есть, это должно лежать на странице
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.

MDK5 Software Packs
For MDK Version 5 additional software components and support for microcontroller devices is provided by Software Packs. DFP (Device Family Pack) indicates that a Software Pack contains support for microcontroller devices.

и там где-то он есть. То есть - это не левак, это пак и он как-то у меня скачался.

Ну до второй линейки я пока не дорос Давай первую

82МБ

Это так просто не выложить.

Есть мысли?

Он лежит тут. Конкретно тот, что у меня
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.


ссылка на скачивание:
Ctrl+F - > "STMicroelectronics STM32F1 Series Device Support, Drivers and Examples"

Там есть такая строка и в ней стрелочка даунлоада справа. Работает, проверил.

Вот в этом самом паке - те самые файлы лежат.