Git Product home page Git Product logo

packages's Introduction

English | 中文 | Español | Deutsch

GitHubStars GiteeStars GitHub GitHub release Gitter GitHub pull-requests PRs Welcome

RT-Thread

RT-Thread was born in 2006, it is an open source, neutral, and community-based real-time operating system (RTOS).

RT-Thread is mainly written in C language, easy to understand and easy to port(can be quickly port to a wide range of mainstream MCUs and module chips). It applies object-oriented programming methods to real-time system design, making the code elegant, structured, modular, and very tailorable.

RT-Thread has Standard version and Nano version. For resource-constrained microcontroller (MCU) systems, the Nano version that requires only 3KB Flash and 1.2KB RAM memory resources can be tailored with easy-to-use tools. For resource-rich IoT devices, RT-Thread can use the on-line software package management tool, together with system configuration tools, to achieve intuitive and rapid modular cutting, seamlessly import rich software packages; thus, achieving complex functions like Android's graphical interface and touch sliding effects, smart voice interaction effects, and so on.

RT-Thread Architecture

RT-Thread has not only a real-time kernel, but also rich components. Its architecture is as follows:

architecture

It includes:

  • Kernel layer: RT-Thread kernel, the core part of RT-Thread, includes the implementation of objects in the kernel system, such as multi-threading and its scheduling, semaphore, mailbox, message queue, memory management, timer, etc.; libcpu/BSP (Chip Migration Related Files/Board Support Package) is closely related to hardware and consists of peripheral drivers and CPU porting.

  • Components and Service Layer: Components are based on upper-level software on top of the RT-Thread kernel, such as virtual file systems, FinSH command-line interfaces, network frameworks, device frameworks, and more. Its modular design allows for high internal cohesion inside the components and low coupling between components.

  • RT-Thread software package: A general-purpose software component running on the RT-Thread IoT operating system platform for different application areas, consisting of description information, source code or library files. RT-Thread provides an open package platform with officially available or developer-supplied packages that provide developers with a choice of reusable packages that are an important part of the RT-Thread ecosystem. The package ecosystem is critical to the choice of an operating system because these packages are highly reusable and modular, making it easy for application developers to build the system they want in the shortest amount of time. RT-Thread supports 450+ software packages.

RT-Thread Features

  • Designed for resource-constrained devices, the minimum kernel requires only 1.2KB of RAM and 3 KB of Flash.
  • A variety of standard interfaces, such as POSIX, CMSIS, C++ application environment.
  • Has rich components and a prosperous and fast growing package ecosystem.
  • Elegant code style, easy to use, read and master.
  • High Scalability. RT-Thread has high-quality scalable software architecture, loose coupling, modularity, is easy to tailor and expand.
  • Supports high-performance applications.
  • Supports all mainstream compiling tools such as GCC, Keil and IAR.
  • Supports a wide range of architectures and chips.

Code Catalogue

RT-Thread source code catalog is shown as follow:

Name Description
bsp Board Support Package based on the porting of various development boards
components Components, such as finsh shell, file system, protocol stack etc.
documentation Related documents, like coding style, doxygen etc.
examples Related sample code
include Head files of RT-Thread kernel
libcpu CPU porting code such as ARM/MIPS/RISC-V etc.
src The source files for the RT-Thread kernel.
tools The script files for the RT-Thread command build tool.

RT-Thread has now been ported for nearly 200 development boards, most BSPs support MDK, IAR development environment and GCC compiler, and have provided default MDK and IAR project, which allows users to add their own application code directly based on the project. Each BSP has a similar directory structure, and most BSPs provide a README.md file, which is a markdown-format file that contains the basic introduction of BSP, and introduces how to simply start using BSP.

Resources

Supported Architectures

RT-Thread supports many architectures, and has covered the major architectures in current applications. Architecture and chip manufacturer involved:

  • ARM Cortex-M0/M0+:manufacturers like ST
  • ARM Cortex-M3:manufacturers like ST、Winner Micro、MindMotion, ect.
  • ARM Cortex-M4:manufacturers like ST、Infineon、Nuvoton、NXP、Nordic、GigaDevice、Realtek、Ambiq Micro, ect.
  • ARM Cortex-M7:manufacturers like ST、NXP
  • ARM Cortex-M23:manufacturers like GigaDevice
  • ARM Cortex-M33:manufacturers like ST
  • ARM Cortex-R4
  • ARM Cortex-A8/A9:manufacturers like NXP
  • ARM7:manufacturers like Samsung
  • ARM9:manufacturers like Allwinner、Xilinx 、GOKE
  • ARM11:manufacturers like Fullhan
  • MIPS32:manufacturers like loongson、Ingenic
  • RISC-V RV32E/RV32I[F]/RV64[D]:manufacturers like sifive、Canaan Kendrytebouffalo_labNucleiT-HeadHPMicro
  • ARC:manufacturers like SYNOPSYS
  • DSP:manufacturers like TI
  • C-Sky
  • x86

Supported IDE and Compiler

The main IDE/compilers supported by RT-Thread are:

  • RT-Thread Studio IDE
  • MDK KEIL
  • IAR
  • GCC

RT-Thread Studio IDE

User Manual | Tutorial Videos

RT-Thread Studio IDE (a.k.a. RT-Studio) is a one-stop intergrated development environment built by RT-Thread team. It has a easy-to-use graphical configuration system and a wealth of software packages and components resources. RT-Studio has the features of project creation, configuration and management,as well as code editing, SDK management, build configuration, debugging configuration, program download and debug. We're looking to make the use of RT-Studio as intuitive as possible, reducing the duplication of work and improving the development efficiency.

studio

Env Tool

User Manual | Tutorial Videos

In the early stage, RT-Thread team also created an auxiliary tool called Env. It is an auxiliary tool with a TUI (Text-based user interface). Developers can use Env tool to configure and generate the GCC, Keil MDK, and IAR projects.

env

Getting Started

RT-Thread Programming Guide | RT-Thread Studio IDE | Kernel Sample | RT-Thread Beginners Guide

Based on STM32F103 BluePill | Raspberry Pi Pico

Simulator

RT-Thread BSP can be compiled directly and downloaded to the corresponding development board for use. In addition, RT-Thread also provides qemu-vexpress-a9 BSP, which can be used without hardware platform. See the getting started guide below for details. Getting Started of QEMU with Env: Windows | Linux Ubuntu | Mac OS

License

RT-Thread follows the Apache License 2.0 free software license. It's completely open-source, can be used in commercial applications for free, does not require the disclosure of code, and has no potential commercial risk. License information and copyright information can generally be seen at the beginning of the code:

/* Copyright (c) 2006-2018, RT-Thread Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 * ...
 */

Community

RT-Thread is very grateful for the support from all community developers, and if you have any ideas, suggestions or questions in the process of using RT-Thread, RT-Thread can be reached by the following means, and we are also updating RT-Thread in real time on these channels. At the same time, any questions can be asked in the issue section of RT-Thread repository or RT-Thread forum, and community members will answer them.

Website | Github | Twitter | LinkedIn | Youtube | Facebook | Medium

Contribution

If you are interested in RT-Thread and want to join in the development of RT-Thread and become a code contributor,please refer to the Code Contribution Guide.

Thanks for the following contributors!

packages's People

Contributors

armink avatar balancetwk avatar bernardxiong avatar enkiller avatar forest-rain avatar greedyhao avatar guozhanxin avatar harrypotter-zhs avatar kurisaw avatar lawlieta avatar lhylhylhy6 avatar liu2guang avatar loogg avatar luhuadong avatar majianjia avatar murphyzhao avatar mysterywolf avatar prry avatar qiyongzhong0 avatar shaoguoji avatar summergift avatar supperthomas avatar willianchanlovegithub avatar wkjay avatar wuhanstudio avatar xiaojiefan avatar xyz-20240101 avatar yangjie11 avatar z8man8 avatar zhkag avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

packages's Issues

gui_engine ver: latest 以及 v2.0.0 编译报错

环境

操作系统 Win10
env 版本 v1.3.5
RT-Thread 版本 v4.1.1

复现步骤

在 menuconfig 中:

Location:
│ -> RT-Thread online packages
│ -> multimedia packages
│ -> Enable GUI Engine (PKG_USING_GUIENGINE [=y])

启用 Enable GUI Engine(版本选latest 或者 v2.0.0均报错),再启用里面的 Enable the example of GUI engine。保存退出后,scons编译报错:

CC build\packages\gui_engine-latest\example\gui_demo.o
In file included from packages\gui_engine-latest\include/rtgui/image.h:28,
                 from packages\gui_engine-latest\example\gui_demo.c:8:
packages\gui_engine-latest\include/rtgui/filerw.h:39:10: fatal error: dfs_posix.h: No such file or directory
   39 | #include <dfs_posix.h>
      |          ^~~~~~~~~~~~~
compilation terminated.
scons: *** [build\packages\gui_engine-latest\example\gui_demo.o] Error 1
scons: building terminated because of errors.

iot->freemodbus tcp slave模式多连接引起错误

modbus tcp slave模式,只支持一个连接。当有第二个连接进入时,会提示Multi-host is not supported, please disconnect the current host first! 然后关闭连接时会出错。
建议对包中porttcp.c文件的tcpserver_event_notify回调函数做如下修改

image

static void tcpserver_event_notify(tcpclient_t client, rt_uint8_t event)
{
switch (event)
{
case TCPSERVER_EVENT_CONNECT:
if (mb_client == RT_NULL)
{
mb_client = client;
}
else
{
tcpserver_close(client);
rt_kprintf("Multi-host is not supported, please disconnect the current host first!");
}
break;
case TCPSERVER_EVENT_RECV:
if(mb_client==client){
prvvTCPLength = tcpserver_recv(mb_client, &prvvTCPBuf, MB_TCP_BUF_SIZE, 100);
if (prvvTCPLength)
{
xMBPortEventPost(EV_FRAME_RECEIVED);
}
}
break;
case TCPSERVER_EVENT_DISCONNECT:
if(mb_client==client)
mb_client = RT_NULL;
break;
default:
break;
}
}

mbedtls 对接硬件加密模块效率问题

如下图所示,目前我们加密函数每次加密的长度为16个字节,但是有些硬件模块一次处理的数据长度可能远远大于16个字节,将数据强制按照16个字节处理的话,会大大影响加密的效率,是否有更好的处理方案?

image

Kconfig:9: unknown option "rsource"

❯ scons --menuconfig
scons: Reading SConscript files ...
scons: Entering directory /Users/charlie/rt-thread-5.0.2/tools/kconfig-frontends' scons: Reading SConscript files ... scons: done reading SConscript files. scons: Building targets ... scons: .' is up to date.
scons: done building targets.
Cloning into '/Users/charlie/.env/packages/packages'...
remote: Enumerating objects: 21016, done.
remote: Counting objects: 100% (2133/2133), done.
remote: Compressing objects: 100% (310/310), done.
remote: Total 21016 (delta 1869), reused 1969 (delta 1822), pack-reused 18883
Receiving objects: 100% (21016/21016), 3.59 MiB | 789.00 KiB/s, done.
Resolving deltas: 100% (11596/11596), done.
Cloning into '/Users/charlie/.env/tools/scripts'...
remote: Enumerating objects: 2199, done.
remote: Counting objects: 100% (339/339), done.
remote: Compressing objects: 100% (128/128), done.
remote: Total 2199 (delta 227), reused 261 (delta 210), pack-reused 1860
Receiving objects: 100% (2199/2199), 2.55 MiB | 1.38 MiB/s, done.
Resolving deltas: 100% (1478/1478), done.
Kconfig:3:warning: environment variable BSP_ROOT undefined
/Users/charlie/.env/packages/packages/Kconfig:4: syntax error
/Users/charlie/.env/packages/packages/Kconfig:3: unknown option "rsource"
/Users/charlie/.env/packages/packages/Kconfig:4: unknown option "rsource"
/Users/charlie/.env/packages/packages/Kconfig:5: unknown option "rsource"
/Users/charlie/.env/packages/packages/Kconfig:6: unknown option "rsource"
/Users/charlie/.env/packages/packages/Kconfig:7: unknown option "rsource"
/Users/charlie/.env/packages/packages/Kconfig:8: unknown option "rsource"
/Users/charlie/.env/packages/packages/Kconfig:9: unknown option "rsource"
/Users/charlie/.env/packages/packages/Kconfig:10: unknown option "rsource"
/Users/charlie/.env/packages/packages/Kconfig:11: unknown option "rsource"
/Users/charlie/.env/packages/packages/Kconfig:12: unknown option "rsource"
/Users/charlie/.env/packages/packages/Kconfig:13: unknown option "rsource"

system/fal/Kconfig 软件包版本限制

我用的是最新的4.1.0内核,menuconfig配置了一下发现fal软件包不见了,才看到是system/fal/Kconfig里面添加了版本限制。
这个限制不知道是不是正常的,这样高于4.1.0版本的内核全都找不到fal这个软件包

EasyFlash Kconfig 缺少配置项

原文件79行到98行之间的内容如下:

  if PKG_EASYFLASH_VER_NUM >= 0x40000
        choice
            prompt "Write minimum granularity"
            default PKG_EASYFLASH_WRITE_GRAN_1BIT
            config PKG_EASYFLASH_WRITE_GRAN_1BIT
                bool "1bit   such as Nor Flash"

            config PKG_EASYFLASH_WRITE_GRAN_8BITS
                bool "8bits  such as STM32F2/F4"

            config PKG_EASYFLASH_WRITE_GRAN_32BITS
                bool "32bits such as STM32F1"
        endchoice

        config PKG_EASYFLASH_WRITE_GRAN
            int
            default 1 if PKG_EASYFLASH_WRITE_GRAN_1BIT
            default 8 if PKG_EASYFLASH_WRITE_GRAN_8BITS
            default 32 if PKG_EASYFLASH_WRITE_GRAN_32BITS
    endif

缺少64bits的配置项。可能如下:

  if PKG_EASYFLASH_VER_NUM >= 0x40000
        choice
            prompt "Write minimum granularity"
            default PKG_EASYFLASH_WRITE_GRAN_1BIT
            config PKG_EASYFLASH_WRITE_GRAN_1BIT
                bool "1bit   such as Nor Flash"

            config PKG_EASYFLASH_WRITE_GRAN_8BITS
                bool "8bits  such as STM32F2/F4"

            config PKG_EASYFLASH_WRITE_GRAN_32BITS
                bool "32bits such as STM32F1"
          
            config PKG_EASYFLASH_WRITE_GRAN_64BITS
                bool "64bits such as STM32L4"
        endchoice

        config PKG_EASYFLASH_WRITE_GRAN
            int
            default 1 if PKG_EASYFLASH_WRITE_GRAN_1BIT
            default 8 if PKG_EASYFLASH_WRITE_GRAN_8BITS
            default 32 if PKG_EASYFLASH_WRITE_GRAN_32BITS
            default 64 if PKG_EASYFLASH_WRITE_GRAN_64BITS
    endif

kernel sample

e9aaac079bda2a9531e91eee37cbe9f
rt_thread里已经没有name变量了,这里需要更新

AT Device 不应该依赖 AT Socket

select AT_USING_SOCKET

这一句话是否应该删掉。或者单独依赖AT socket 而不是依赖AT device

在package 打开AT Device时会强制勾上AT socket. 但是我这边换成PPP 拨号后,AT socket会跟AT 有冲突。
导致AT Device 和 PPP 无法共存。

我依然需要用AT Device 来读取模块信号强度等信息,同时用PPP+LWIP来进行联网。
底层已经用cmux来实现共享uart。

我看到AT device里面已经酱device和socket分得很清楚,按理来说,socket应该作为 AT device的可选功能,而不是必须打开的功能。

TODO: choice语法块中不可再包含if语法块

1.软件包对 RT-Thread 版本的判断使用如下方法:
在进行 RT-Thread 版本限制的时候,要注意此软件包或软件包版本是否真的在此 RT-Thread 版本不可用,还是由于 bsp 的问题
RT_VER_NUM 这个宏是在Kconfig中定义并在rtconfig.h中自动生成的
在.c/.h文件下采用如下方法(不要使用<rtthread.h>里定义的版本宏来判断)

#if RT_VER_NUM >= 0x50000
。。。
#else
。。。
#endif /*RT_VER_NUM >= 0x50000*/

kconfig书写不规范

menu "Select LoRa Radio SPI device"

BSP_USING_XXX的config不应该出现在这些地方,这会导致和BSP驱动目录里的配置冲突,如果只是依赖的话,应该使用类似select来进行依赖选择,而不是另起炉灶进行BSP_USING的配置,或者不要使用BSP_USING作为前缀以免和驱动目录冲突。

misc/samples/Kconfig语法错误

17 config RT_SAMPLES_AUTORUN
18 bool "autorun"
19 prompt "run sample in init thread"
20 default y

bool 后面接的字符串就已经是 prompt属性了 根据个人猜测应改为help

为了解决 RT-Thread nRF24L01 软件包在 STM32F103C8 上死活调不通的问题,我都干了啥?

背景介绍:
Sugar 的《软件架构训练计划》用的是 CubeMX 第三方软件包和 RT-Thread 混合代码,为了练习故意这么整的。
《RT-Thread STM32 虚拟串口代码级移植》一文中说过,Sugar 未来目标是带着读者回归 RT-Thread 大集体中去。
为了迈出回归第一步,并且带初入门者了解代码,Sugar 从自己开源的麦轮车遥控代码开使入手,第一步就先把 nRF24L01 的驱动换掉。
nRF24L01 的驱动在 IoT Board 上就好好的,到遥控的主控芯片 STM32F103C8 上就死活不通,于是探索就开始了。

第一步,动脑分析与动手验证

这里主要说一下问题方法,遇事不要慌。

一、是软件问题么?
Sugar 在 IoT Board(潘多拉开发板)上和遥控器上用了同样的官方示例代码。
IoT Board 上没问题,遥控上初始化死活不成功。
因为是基于 RTOS 的代码,应用层复制过去就行,SPI 驱动也已经调好,所以不存在代码内容不一样的问题(为了求证,还特意用 Beyond Compare 对比了一下,确定没改啥)。
好的,至此确定:肯定不是软件代码复制错了。
二、是硬件坏了么?
同样的硬件,换上 Sugar 以前基于 CubeMX 的 C++ 代码,动手验证,能控车,硬件没问题。

软件代码一样,硬件好使,IoT Board 就行,遥控就死活初始化不成功,揪净为啥啊(看吧,程序员又揪头发了)。

第二步,回归本源

一般遇到这种问题,首先怀疑的就是驱动软件代码还有提升空间。
但揪净怎么提升呢?还是要看枯燥的 datasheet。
年龄大了,看 datasheet 的耐心不足了。还好 Sugar 打小时候就沉迷书法,于是有了下面的作品。








最后,找到原因了

在上面练字过程中,有句话带来灵感,最终加了一句代码搞定了。

关注作者

欢迎扫码关注我的公众号MultiMCU EDU

提示:在公众号“关于我”页面可加作者微信好友。

喜欢本文求点赞,有打赏我会更有动力。

[建议]加入.gitattributes文件,处理CRLF 与 LF 混用问题

  • 问题: 我发现 Kconfig 文件行末符 CRLFLF 混用 ,度致在Linux下 scons --menuconfig出错

  • 建议: 加入.gitattributes 文件处理CRLFLF 问题,像 RT-Thread 一样, 也可以看看微软的建议


  • 现象:

    • 我在 Ubuntu 20.04.1 LTS 下 scons --menuconfig,出现错误。具体如下:
    $ scons --menuconfig
    scons: Reading SConscript files ...
    scons: Entering directory `/home/dongly/project/iot/rt-thread/tools/kconfig-frontends'
    scons: Reading SConscript files ...
    scons: done reading SConscript files.
    scons: Building targets ...
    scons: `.' is up to date.
    scons: done building targets.
    Kconfig:3:warning: environment variable BSP_ROOT undefined
    Kconfig:8:warning: environment variable RTT_ROOT undefined
    /home/dongly/.env/packages/packages/iot/pdulib/Kconfig:4:warning: leading whitespace ignored
    'home/dongly/.env/packages/packages/security/yd_crypto/Kconfig:1:warning: ignoring unsupported character '
    'home/dongly/.env/packages/packages/security/yd_crypto/Kconfig:2:warning: ignoring unsupported character '
    ......
    ......
    ......
    'home/dongly/.env/packages/packages/misc/TensorflowLiteMicro/Kconfig:42:warning: ignoring unsupported character '
    'home/dongly/.env/packages/packages/misc/TensorflowLiteMicro/Kconfig:44:warning: ignoring unsupported character '
    'home/dongly/.env/packages/packages/misc/TensorflowLiteMicro/Kconfig:44:warning: ignoring unsupported character '
    /home/dongly/.env/packages/packages/peripherals/nrf5x_sdk/Kconfig:63:warning: defaults for choice values not supported
    /home/dongly/.env/packages/packages/misc/crclib/Kconfig:46:warning: 'CRC8_POLY': number is invalid
    /home/dongly/.env/packages/packages/misc/crclib/Kconfig:81:warning: 'CRC16_POLY': number is invalid
    /home/dongly/.env/packages/packages/misc/crclib/Kconfig:116:warning: 'CRC32_POLY': number is invalid
    /home/dongly/.env/packages/packages/misc/TensorflowLiteMicro/Kconfig:32:warning: defaults for choice values not supported
    /home/dongly/.env/packages/packages/misc/TensorflowLiteMicro/Kconfig:36:warning: defaults for choice values not supported
    • dos2unixenv/packages/packages 下的 Kconfig 的 CRLF 转换成 LF 后,还有错误:
    $ scons --menuconfig
    scons: Reading SConscript files ...
    scons: Entering directory `/home/dongly/project/iot/rt-thread/tools/kconfig-frontends'
    scons: Reading SConscript files ...
    scons: done reading SConscript files.
    scons: Building targets ...
    scons: `.' is up to date.
    scons: done building targets.
    Kconfig:3:warning: environment variable BSP_ROOT undefined
    Kconfig:8:warning: environment variable RTT_ROOT undefined
    /home/dongly/.env/packages/packages/iot/pdulib/Kconfig:4:warning: leading whitespace ignored
    /home/dongly/.env/packages/packages/peripherals/nrf5x_sdk/Kconfig:63:warning: defaults for choice values not supported
    /home/dongly/.env/packages/packages/misc/crclib/Kconfig:46:warning: 'CRC8_POLY': number is invalid
    /home/dongly/.env/packages/packages/misc/crclib/Kconfig:81:warning: 'CRC16_POLY': number is invalid
    /home/dongly/.env/packages/packages/misc/crclib/Kconfig:116:warning: 'CRC32_POLY': number is invalid
    /home/dongly/.env/packages/packages/misc/TensorflowLiteMicro/Kconfig:32:warning: defaults for choice values not supported
    /home/dongly/.env/packages/packages/misc/TensorflowLiteMicro/Kconfig:36:warning: defaults for choice values not supported
    

please fix kconfig warning

such as,

D:\tools\env\tools\ConEmu\ConEmu\..\..\..\packages/packages/peripherals/nrf5x_sdk/Kconfig:63:warning: defaults for choice values not supported
D:\tools\env\tools\ConEmu\ConEmu\..\..\..\packages/packages/misc/crclib/Kconfig:46:warning: 'CRC8_POLY': number is invalid
D:\tools\env\tools\ConEmu\ConEmu\..\..\..\packages/packages/misc/crclib/Kconfig:81:warning: 'CRC16_POLY': number is invalid
D:\tools\env\tools\ConEmu\ConEmu\..\..\..\packages/packages/misc/crclib/Kconfig:116:warning: 'CRC32_POLY': number is invalid
D:\tools\env\tools\ConEmu\ConEmu\..\..\..\packages/packages/misc/TensorflowLiteMicro/Kconfig:32:warning: defaults for choice values not supported
D:\tools\env\tools\ConEmu\ConEmu\..\..\..\packages/packages/misc/TensorflowLiteMicro/Kconfig:36:warning: defaults for choice values not supported

GPRS 模组驱动 A9G,调试遇到AT指令发送失败

我的A9G 版本:V02.02.20190915R
由于AT 指令OK 和 CMD ACK 中间有多个 /0X0D ,/0X0A 也就是\r\n
实际收到的数据往往是 /0X0D ,/0X0A OK /0X0D ,/0X0A , /0X0D ,/0X0A ACK /0X0D ,/0X0A,
由于字符串分割后将0X0A 替换为00,本来代码的字面意思为ACK 在line 2 ,单由于中间有一样0x0d,实际ack在line3
所以判断为命令超时

代码补丁已经修改,但没有上传

nxp RT1052 persimmon 编译出错.

使用nxp官方提供的gcc-arm-none-eabi-7-2017-q4-major.
编译基本项目没有问题.
添加gui_engine后也没有问题.
但是添加persimmon就报错.如下:
......
LINK rtthread-imxrt.elf
build/packages/persimmon/examples/images-animation/animation.o: In function AnimationWin::AnimationWin()': animation.cpp:(.text+0x1c): undefined reference toPersimmon::Window::Window(char const*)'
animation.cpp:(.text+0x9c): undefined reference to Persimmon::Rect::Rect(int, int, int, int)' animation.cpp:(.text+0xa8): undefined reference toPersimmon::Rect::getWidth() const'
animation.cpp:(.text+0xb8): undefined reference to Persimmon::Rect::getHeight() const' animation.cpp:(.text+0x148): undefined reference toPersimmon::ImageBox::ImageBox(Persimmon::Image*, char const*)'
animation.cpp:(.text+0x1d8): undefined reference to Persimmon::Rect::Rect(int, int, int, int)' animation.cpp:(.text+0x230): undefined reference toPersimmon::Widget::getRect() const'
animation.cpp:(.text+0x23c): undefined reference to Persimmon::Rect::getWidth() const' animation.cpp:(.text+0x25c): undefined reference toPersimmon::Rect::getHeight() const'
animation.cpp:(.text+0x2d8): undefined reference to Persimmon::Timer::Timer(int, Persimmon::Timer::flag)' animation.cpp:(.text+0x31c): undefined reference toPersimmon::Timer::start()'
build/packages/persimmon/examples/images-animation/animation.o: In function AnimationWin::~AnimationWin()': animation.cpp:(.text+0x380): undefined reference toPersimmon::Window::~Window()'
build/packages/persimmon/examples/images-animation/animation.o: In function AnimationWin::onButton()': animation.cpp:(.text+0x428): undefined reference toPersimmon::Animation::Animation(Persimmon::Widget&)'
animation.cpp:(.text+0x7b0): undefined reference to Persimmon::Point::Point(int, int)' animation.cpp:(.text+0x7d8): undefined reference toPersimmon::Point::Point(int, int)'
animation.cpp:(.text+0x804): undefined reference to Persimmon::AnimMoveAnimator::AnimMoveAnimator(rtgui_dc*, Persimmon::Point const&, Persimmon::Point const&)' animation.cpp:(.text+0x818): undefined reference toPersimmon::Widget::getBufferDrawing(Persimmon::RenderFlag)'
animation.cpp:(.text+0x884): undefined reference to Persimmon::Animation::start(bool)' animation.cpp:(.text+0x898): undefined reference toPersimmon::Animation::~Animation()'
build/packages/persimmon/examples/images-animation/animation.o:(.rodata+0xdc28): undefined reference to Persimmon::Container::setRect(Persimmon::Rect const&)' build/packages/persimmon/examples/images-animation/animation.o:(.rodata+0xdc2c): undefined reference toPersimmon::Container::render(rtgui_dc*, Persimmon::Point const&, Persimmon::Rect const&, Persimmon::RenderFlag)'
build/packages/persimmon/examples/images-animation/animation.o:(.rodata+0xdc30): undefined reference to Persimmon::Widget::renderBackground(rtgui_dc*, Persimmon::Point const&, Persimmon::Rect const&, Persimmon::RenderFlag)' build/packages/persimmon/examples/images-animation/animation.o:(.rodata+0xdc34): undefined reference toPersimmon::Widget::onHide(rtgui_event*)'
build/packages/persimmon/examples/images-animation/animation.o:(.rodata+0xdc38): undefined reference to Persimmon::Widget::onShow(rtgui_event*)' build/packages/persimmon/examples/images-animation/animation.o:(.rodata+0xdc3c): undefined reference toPersimmon::Window::eventHandler(rtgui_event*)'
build/packages/persimmon/examples/images-animation/animation.o:(.rodata+0xdc40): undefined reference to Persimmon::Container::getMouseOwner(int, int)' build/packages/persimmon/examples/images-animation/animation.o:(.rodata+0xdc48): undefined reference toPersimmon::Container::addChild(Persimmon::Widget*)'
build/packages/persimmon/examples/images-animation/animation.o:(.rodata+0xdc4c): undefined reference to Persimmon::Container::removeChild(Persimmon::Widget*)' build/packages/persimmon/examples/images-animation/animation.o:(.rodata+0xdc50): undefined reference toPersimmon::Window::show(int)'
build/packages/persimmon/examples/images-animation/animation.o:(.rodata+0xdc54): undefined reference to Persimmon::Window::close(int)' build/packages/persimmon/examples/images-animation/animation.o:(.rodata+0xdc58): undefined reference toPersimmon::Window::dealKbd(rtgui_event_kbd*)'
build/packages/persimmon/examples/images-animation/ui_win.o: In function ui_win': ui_win.cpp:(.text+0x24): undefined reference toPersimmon::Application::Application(char const*)'
build/kernel/components/cplusplus/crt_init.o: In function cplusplus_system_init': /home/work/work/RT-thread/rt-thread/components/cplusplus/crt_init.c:83: undefined reference toctors_start'
/home/work/work/RT-thread/rt-thread/components/cplusplus/crt_init.c:83: undefined reference to `ctors_end'

这个问题是现在还没有适配rt1052吗?有其他的UI推荐吗?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.