Как стать автором
Обновить

Комментарии 13

Я смотрел на серию TLSR9 - но у них написано "подписывайте NDA", так что нафиг. В 21 веке даташиты на микроконтроллеры под NDA - это дикость, участвовать в которой я не хочу.

Даже у WCH в этом плане получше. Половина даташитов на китайском - но они хотя бы есть.

Поддерживаю, дико неудобно. Как кстати WCH? Давно к ним приглядываюсь.

Я у них, если не считать классических интерфейсных чипов, не так-то много чипов использовал.

Линейка CH55x прикольная, но не без недостатков. Из преимуществ - дешёвые чипы, USB на борту, USB загрузчик из коробки, и не требует почти никакой обвязки. Приятно. Из недостатков - все типичные для 8051. Древняя архитектура, маловато периферии, нет нормальной отладки. Для простого USB-устройства чип подошёл вполне.

Сейчас вот смотрел в сторону CH569 - это уже из их современных RISC-V линеек. Хочу попробовать, какой там на вкус USB 3.0 и сколько гигабит эта странная штука сможет реально стримить в комп.

А как вообще bluetooth стэк в целом? Приемлимый? Или баг на баге?
Тоже хотел попробовать серию TLSR9 в качестве bluetooth аудио проигрывателя.

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

Ну да, так всегда с китайскими вендорами.
А еще интересно, у них стэк прям честный bluetooth 5.2, или как часто это бывает, железо 5.1-5.2, а софт только 4.2 поддерживет (привет bluez'у)?

Ну, 2MBit поддерживает, значит уже 5.0)

BlueZ это отдельная история. Однажды писал себе вспомогательную тулу и столкнулся с тем, что bluez не распознает пакеты адвертайзинга и SRP как отдельные пакеты, если тип данных в адвертайзинге - manufacturer specific (0xFFFF). Вместо этого он на серьезных щщах утверждал, что получил только scan response.

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

Я бы порекомендовал добавить больше опций компилятора

#COMPILE_OPT += -fpack-struct
COMPILE_OPT += -fshort-enums


COMPILE_OPT += -flto
COMPILE_OPT += -fomit-frame-pointer
COMPILE_OPT += -Wno-nonnull-compare
COMPILE_OPT += -Wall
COMPILE_OPT += -fdata-sections
COMPILE_OPT += -ffunction-sections
COMPILE_OPT += -Werror=shadow
COMPILE_OPT += -Werror=address
COMPILE_OPT += -Werror=switch
COMPILE_OPT += -Werror=array-bounds=1
COMPILE_OPT += -Werror=comment
COMPILE_OPT += -Werror=div-by-zero
COMPILE_OPT += -Werror=duplicated-cond
COMPILE_OPT += -Werror=shift-negative-value
COMPILE_OPT += -Werror=duplicate-decl-specifier
COMPILE_OPT += -Werror=enum-compare
COMPILE_OPT += -Werror=uninitialized
COMPILE_OPT += -Werror=empty-body
COMPILE_OPT += -Werror=unused-but-set-parameter
COMPILE_OPT += -Werror=unused-but-set-variable
COMPILE_OPT += -Werror=float-equal
COMPILE_OPT += -Werror=logical-op
COMPILE_OPT += -Werror=implicit-int
COMPILE_OPT += -Werror=implicit-function-declaration
COMPILE_OPT += -Werror=incompatible-pointer-types
COMPILE_OPT += -Werror=int-conversion
COMPILE_OPT += -Werror=old-style-declaration
COMPILE_OPT += -Werror=maybe-uninitialized
COMPILE_OPT += -Werror=redundant-decls
COMPILE_OPT += -Werror=sizeof-pointer-div
COMPILE_OPT += -Werror=misleading-indentation
COMPILE_OPT += -Werror=missing-declarations
COMPILE_OPT += -Werror=missing-parameter-type
COMPILE_OPT += -Werror=overflow
COMPILE_OPT += -Werror=parentheses
COMPILE_OPT += -Werror=address-of-packed-member
COMPILE_OPT += -Werror=pointer-sign
COMPILE_OPT += -Werror=return-type
COMPILE_OPT += -Werror=shift-count-overflow
COMPILE_OPT += -Werror=strict-prototypes
COMPILE_OPT += -Werror=unused-but-set-variable
COMPILE_OPT += -Werror=unused-function
COMPILE_OPT += -Werror=unused-variable
COMPILE_OPT += -Werror=type-limits
COMPILE_OPT += -Werror=override-init
COMPILE_OPT += -Werror=duplicate-decl-specifier
COMPILE_OPT += -Werror=int-conversion
COMPILE_OPT += -Wno-stringop-truncation
COMPILE_OPT += -Wno-format-truncation
COMPILE_OPT += -Wno-restrict
COMPILE_OPT += -Wno-format
COMPILE_OPT += -Wno-cpp #TODO temp
COMPILE_OPT += -Wno-discarded-qualifiers
COMPILE_OPT += -Wmissing-prototypes

# cause too many errors
#COMPILE_OPT += -Werror=traditional

# cause too many errors
COMPILE_OPT += -Werror=missing-prototypes


#Perform dead code elimination
COMPILE_OPT += -fdce

#Perform dead store elimination
COMPILE_OPT += -fdse


COMPILE_OPT += -fmessage-length=0
COMPILE_OPT += -fsigned-char
COMPILE_OPT += -fno-common
COMPILE_OPT += -fstack-usage
COMPILE_OPT += -fzero-initialized-in-bss
COMPILE_OPT += -finline-small-functions
COMPILE_OPT += -Wmissing-field-initializers



   COMPILE_OPT += -Werror=missing-field-initializers
        COMPILE_OPT += -Werror=unused-but-set-variable
        COMPILE_OPT += -Werror=implicit-function-declaration
        COMPILE_OPT += -Werror=unused-variable


ifeq ($(DEBUG), Y)
    COMPILE_OPT += -O0
else
    COMPILE_OPT += -Os
endif

ifeq ($(DEBUG), Y)
    COMPILE_OPT += -g3 -ggdb -gdwarf-2
endif

#COMPILE_OPT += -Wformat-overflow=1
COMPILE_OPT += $(CSTANDARD)
COMPILE_OPT += $(MICROPROCESSOR)  
COMPILE_OPT += $(INCDIR)

# Generate dependency information
COMPILE_OPT += -MMD -MP -MF"$(@:%.o=%.d)"

CFLAGS += $(OPT)
CFLAGS += $(COMPILE_OPT)

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

Вы готовы аргументировать необходимость каждой опции в этой стене текста безотносительно целевого проекта?

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

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации