
Ruslan
10.01.2017
20:25:39
кажется понял, надо смотреть на диаграмму системной архитектуры, а там видно, что TIM4 на APB1

EDWARD
10.01.2017
20:30:15
Это
Поясните мне за видеокарту мою
на сайтах написано что на ней 256мб, а на корпусе написано что 128

Google

EDWARD
10.01.2017
20:30:48
в чем подвох

Denys
10.01.2017
20:32:02
может быть урезанная версия
и вообще все равно мало
если есть возможность - считать чипы и смотреть их маркировку

sdf347
10.01.2017
20:33:20

Ruslan
10.01.2017
20:36:06
всё равно, какая-то путаница с этими диаграммами

Dmitry
10.01.2017
20:52:40

Ruslan
10.01.2017
20:55:56
я руками фигачу, без кубиков

Dmitry
10.01.2017
20:56:06
бывает

Ruslan
10.01.2017
20:58:06
но это мысль, надо попробовать
осталось понять, что там вбивать (кроме проца)
https://hastebin.com/dozemufiqi.pas - GDB с ума сходит, прыгает вперёд назад, первый раз такое вижу
разобрался с кубиком, научился генерить под него Makefile, пустой проект собирается, теперь напихиваю в него код...

Google

Keroronsk
12.01.2017
08:07:40
а как мэйкфайл генеришь?

Martin
12.01.2017
08:13:15
из присутствующих, есть ли спецы, кто имеет опыт разворачивания chibios на stm32f105?

Ruslan
12.01.2017
08:17:12

Keroronsk
12.01.2017
08:17:31
санкью

Ruslan
12.01.2017
08:17:38

Martin
12.01.2017
08:18:03

Ruslan
12.01.2017
08:19:19
https://github.com/RaD/armka_demos
по коммитам посмотри
самое главное правильный board указать, а потом аккуратно пройтись по конфигам

Martin
12.01.2017
08:22:30
благодарю

Ruslan
12.01.2017
08:22:34
точнее, в board ты описываешь конфигурацию ног и можешь управлять фичами проца типа отключения JTAG, ремаппинга ног и так далее

Влад
12.01.2017
08:22:49
обьясните дураку, зачем нужна такая конструкция?
#define CLOCK_CONF_SECOND 128
#define DEBOUNCE_DURATION (CLOCK_CONF_SECOND >> 5)
Зачем сдвиг, почему не CLOCK_CONF_SECOND/32?
Чтобы гарантировать, что результат будет степенью двойки?

Ruslan
12.01.2017
08:23:12
сдвиг быстрее сделать, чем деление
хотя компилер обычно врубается и заменяет деление на сдвиг, если возможно

Влад
12.01.2017
08:23:30
да блин, я же не зря дефайны написал

Dr
12.01.2017
08:23:31

Влад
12.01.2017
08:23:43
пятый человек мне говорит, что быстрее
оно же на этапе компиляции вычислит

Dr
12.01.2017
08:23:57

Влад
12.01.2017
08:24:00
почему?

Google

Dr
12.01.2017
08:24:06
а, хотя да
лол хз

Ruslan
12.01.2017
08:24:29
я бы не верил никому и глянул в доку на свой компилятор

Влад
12.01.2017
08:25:50
в любом случае, это так применяется, что время вычисления там роли абсолютно не играет, после вычисления следует пауза аж на 31мс, обвычисляйся.

Firelander
12.01.2017
08:30:56
Наверное это уже привычка юзать сдвиг когда это возможно

Ruslan
12.01.2017
08:31:33
тяжёлое детство на ассемблере z80

Dr
12.01.2017
08:33:44

Влад
12.01.2017
09:11:33
struct rpl_dag_t *dag;
if (&dag->dag_id) {
Что тут проверяется? Что NULL не равно значение dag_id? Что NULL не равен указатель на dag_id?

Keroronsk
12.01.2017
09:15:16

Влад
12.01.2017
09:15:23
внутри стуктуры это не указатель
/* Directed Acyclic Graph */
struct rpl_dag {
uip_ipaddr_t dag_id;

Andrey
12.01.2017
09:16:49
если не указано - то все числовое делается unsigned int вроде

Konstantins
12.01.2017
09:17:27

Andrey
12.01.2017
09:17:57
Тоже верно

Danil
12.01.2017
10:21:49
по крайней мере gcc должен сожрать 100%

shadowsoul
12.01.2017
10:23:53
жрёт-то он всё, а вот что выдаёт - совершенно другое дело)

Danil
12.01.2017
10:24:08

Dolphin
12.01.2017
10:30:55
Как компилятор накомпиляет, так и будет считаться

Ruslan
12.01.2017
10:33:14
поэтому я и порекомендовал доку на конкретный компилятор изучить

Google

Danil
12.01.2017
10:33:20
ну это как бэ не компилятор а стандарт языка

Dolphin
12.01.2017
10:33:32
Серьезно? ))

Ruslan
12.01.2017
10:33:35
эээ :)

Admin
ERROR: S client not available

Ruslan
12.01.2017
10:33:50
ну почитай для начала стандарт, хуже не будет

Danil
12.01.2017
10:34:15
смотрите описание if для С/С++ и как он понимает значения в условиях

Dolphin
12.01.2017
10:34:39
Какой C/C++? ))

Danil
12.01.2017
10:34:40
компилятор должен соответствовать стандарту языка а не наоьорот

Dolphin
12.01.2017
10:35:22

Danil
12.01.2017
10:35:40
Влад Зайцев:
struct rpl_dag_t *dag;
if (&dag->dag_id) {
Что тут проверяется? Что NULL не равно значение dag_id? Что NULL не равен указатель на dag_id?

Dolphin
12.01.2017
10:37:51
С— - тоже C
Тут дело не только в стандарте интерпритации стейтмента, а в представлении типов, попробуй сравнить float - ухохочешься

Dr
12.01.2017
10:43:16

Dolphin
12.01.2017
10:44:04
... поля структуры по указателю

Dr
12.01.2017
10:45:14

Dolphin
12.01.2017
10:45:26
Именно )

Dr
12.01.2017
10:47:23
ну и разделяй операции по приоретету

Google

Dolphin
12.01.2017
10:49:11
* - адрес (ссылка), & - значение переменной по адресу

Danil
12.01.2017
14:05:23

Dolphin
12.01.2017
14:05:46
правильно, об этом я и говорю :)
ой бле -inf и +inf имел ввиду еще есть, которые не равны

Danil
12.01.2017
14:09:59
а в некоторых представлениях есть ещё -0 и +0, и тоже не равны

Dolphin
12.01.2017
14:10:40
ага, и NaN не равен самому себе, что не позволяет просто так сравнить флоат с NaN

Danil
12.01.2017
14:13:04
ну да, NaN не число же и соответственно нельзя сравнить ни с чем. типа зелёный > 5? и зеленый = зелёный в численном эквиваленте? оба сравнения не имеют смысла

Dolphin
12.01.2017
14:15:10
Ну это не совсем не число, это результат операции - неопределенность
типа деление на ноль
или ноль на бесконечность

Влад
12.01.2017
14:23:26
Кто покритикует? Где может потом вылезти проблема, и может ли? Передаю многобайтовые переменные через однобайтовый буфер.
send_status_packet(const uip_ip6addr_t *dest_addr,
struct simple_udp_connection *connection,
uip_ipaddr_t *parent_addr,
uint32_t *uptime,
int16_t rssi_parent)
{
uint8_t *uptime_uint8_t = (uint8_t *)uptime;
uint8_t *rssi_parent_uint8_t = (uint8_t *)&rssi_parent;
uint8_t buf[23];
....
buf[9] = ((uint8_t *)parent_addr)[14];
buf[10] = ((uint8_t *)parent_addr)[15];
buf[11] = *uptime_uint8_t++;
buf[12] = *uptime_uint8_t++;
buf[13] = *uptime_uint8_t++;
buf[14] = *uptime_uint8_t++;
buf[15] = *rssi_parent_uint8_t++;
buf[16] = *rssi_parent_uint8_t++;

kaktys
12.01.2017
14:24:36
не люблю я вот этого "*uptime_uint8_t++" ... лучше разнести всегда, а то верить компилятору не стоит

Влад
12.01.2017
14:25:22
buf[11] = *uptime_uint8_t;
uptime_uint8_t++;
Так? или ты про другое? Где там может компилятор нагадить?