Змінюй хід війни! Допомагай ЗСУ!

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

🟡 14:00 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • 🟡 14:00 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #261
Мда. По весне начался падеж мелкого китайского скота программатора.
Статикой видимо выбило пин reset, он звонился на землю несколькими десятками Ом. Кристалл, естессно, не стартовал. Запаял проводок на +3,3. Полет нормальный. ИЧСХ этот самый ресет икуд не выведен наружу, все внутри люминёвего корпуса. КАК?!

Странное событие... Не, у меня нет пробоев - я всё прозвонил.
Похоже, действительно, кварц. Есть все питания, есть контакты, но нет связи. Ваачпе. ЮСБ видит 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. Не, оно конечно удобно - не надо ебаться с указателями, работаешь с массивами, как с обычной переменной, беря его из аргумента, но, блядь... может давайте уже и структуры тоже передавать начнем? Не, ну правда, нахуй вообще те указатели?
 
Останнє редагування:
  • 🟡 14:00 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #262
Все он правильно делает. При передаче указателя на массив ты можешь пойти двумя путями:
или так func( &var[0]) в явном виде объявив указатель на нулевой элемент
или так func(var) нифига не объявляя

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

Все он правильно делает. При передаче указателя на массив ты можешь пойти двумя путями:
или так func( &var[0]) в явном виде объявив указатель на нулевой элемент
или так func(var) нифига не объявляя

Оба способа соответствуют стандарту С89

При вызове - да, и так и так работает. А в прототипе он имя массива автоснабжает значком *. Мне его он не показывает. Таким образом принимать он будет var**. Нельзя * в прототипе перед массивом ставить, ели надо сам массив передавать.
 
  • 🟡 14:00 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #264
uint8_t tempstr[5]; encodeASCII (&tempstr, 32765); //------ где-то в совсем другом файле --- void encodeASCII (uint8_t *psy[], uint16_t code) { // и тут как напедалили кода }
а там точно на входе должен быть массив указателей на указатель? :eyecrazy: вернее нахер он там всрался?
скобочки *psy[] явно лишние
void encodeASCII (uint8_t *psy, uint16_t code)
 
  • 🟡 14:00 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #265
а там точно на входе должен быть массив указателей на указатель? :eyecrazy: вернее нахер он там всрался?
скобочки *psy[] явно лишние
void encodeASCII (uint8_t *psy, uint16_t code)

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

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

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

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

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

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

в файлы от куба *.ioc никогда не заглядывал, думал шо там жоский xml :d
а там ваще лафа для парсинга назначений пинов. обалдеть
перепиленный 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 нахер не нужен никому. нужна конкретика а не дрыгалка битиками с "понятными" названиями от индусов.
-------------------------------
 
Останнє редагування:
  • 🟡 14:00 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #267
Главное чтоб от себя не добавлял :D
 
  • 🟡 14:00 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #268
ноно. Это надо ребилд жмыхать. Я не помню, как там с зависимостями работать. Я когда сидел в кейле тупо ребилдил(clean&build) и все. А чтобы не дергалась большая масса исходников - собирать неизменяемую часть в статик либы.

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

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

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

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

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

P.S.
Як остопиздило купатися мені.
Чи може іскупатися?
Купатись чи не купатись?
Блядські ці питання зайобують.
То може, не вагаясь, спустити враз штани та батерфляєм
Хуярити, аж поки за буями в очах не потемніє?
Ну а згодом?
Про наслідки можливі не подумать?
Один лиш тільки раз і вже крадеться піздець з своєю усмішкою хижой.
Простуда, геморой, чіряк на сраці, запльована підлога, лікарі, від шприца гематоми і могила...
На ній брудна Офелія вонюча та купка маргаріток, а під нею лежить той фраєр, що любив купатись.
Такіє варіанти єбав я в рот і в носа. (Гамлєт харка у море і його дрючком пиздячить.)
 
  • 🟡 14:00 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #269
https://s00.************/pics/pics_original/6/5/3/7227356.png

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



ведь и кубик генерит исправно, и код, вроде, работает и какой-то уже написан...

кста. я тут приводил cdc от opencm3 6кб.
поскольку это довольно таки самостоятельная вещь (один коллбек и все едет искаропки) - можно собрать его в статик либу под несколько подсемейств :rolleyes: да хоть под все - и забыть о нем надолго.
то же самое и с HID
а вот msc - то да. можно крупно :as is:
 
Останнє редагування:
  • 🟡 14:00 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #271
https://s00.************/pics/pics_original/6/5/3/7227356.png

что у тебя за косяки с Кейлом. У меня нормально работет, не считая того глюка что я писал выше, ну и трабл с тем что он НАХУЙ НЕ ВИДИТ АЛГОРИТМА ПРОШИВКИ ПАДЛА!!!
А в остальном, ОК.

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


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

кста. я тут приводил cdc от opencm3 6кб.
поскольку это довольно таки самостоятельная вещь (один коллбек и все едет искаропки) - можно собрать его в статик либу под несколько подсемейств :rolleyes: да хоть под все - и забыть о нем надолго.
то же самое и с HID
а вот msc - то да. можно крупно :as is:

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

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

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

кста, китайcи-жлинк по слухам некоторые вспоминают шо их ломали и посылают всех искать Шамбалу :rolleyes:

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

Я повторю совет - прошерстить менеджер пакетов. Там есть кнопочки "проверить апдейты"(кажется) и "update" (если есть апдейты).
У меня кейл обновился до 5.18 и я не жалеючи пространства жмакал апдейт на всё, на что он был, хотя мне кроме f10x нихрена и не надо было.
 
  • 🟡 14:00 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #277
Не апдейтится, походу его все устраивает
 
  • 🟡 14:00 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #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

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

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


Пакдескриптор начинается так:
<?xml version="1.0" encoding="UTF-8"?>

<package schemaVersion="1.2" xmlns:xs="
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.
" xs:noNamespaceSchemaLocation="PACK.xsd">
<vendor>Keil</vendor>
<url>
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.
</url>
<name>STM32F1xx_DFP</name>
<description>STMicroelectronics STM32F1 Series Device Support, Drivers and Examples</description>

<releases>
<release version="2.1.0" date="2016-04-14">
Updated CMSIS drivers:
- EMAC:
-- Improved robustness by function checking that driver is powered (EMAC_FLAG_POWER)
- CAN:
-- Corrected functionality when only one CAN controller is used
-- Corrected pin remap configuration for CAN2 port pins
-- Corrected functionality when NULL pointer is provided for one or both signal callbacks in Initialize function
- USB Device:
-- Corrected Isochronous transfer
-- Corrected IN Endpoint FIFO flush procedure
- USB Host:
-- Removed interrupt priority handling
-- Corrected multiple packet sending
-- Corrected PowerControl function for unconditional Power Off
- USART:
-- Corrected Peripheral Reset and Clock enable/disable (check if peripheral is available on selected device)
-- Corrected CTS handling and added signal CTS change event.
- SPI:
-- Corrected Peripheral Reset and Clock enable/disable (check if peripheral is available on selected device)
-- Corrected Bus Speed configuration
-- Corrected 8bit/16bit Data register access, regarding the Data frame size
-I2C:
-- Corrected invalid __I2C_DMA field in I2C_DMA_TxEvent and I2C_DMA_RxEvent functions
Updated/added examples:
- Added examples using Network DualStack (IPv4/IPv6) Middleware targeting MCBSTM32C (Keil.MDK-Middleware.7.0.0.pack required)
- Updated emWin examples to emWin V5.32
- Updated CAN examples
- Updated USB Host examples
- Updated USB Device CDC ACM VirtualCOM examples
Updated RTE_Device.h: Corrected USART Pin configuration
Added trace configuration to the debug description and updated Quick Start Guide
</release>
 
  • 🟡 14:00 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #279
Ну до второй линейки я пока не дорос :) Давай первую
 
  • 🟡 14:00 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #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"

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

Вот в этом самом паке - те самые файлы лежат.
 
Назад
Зверху Знизу