GithubHelp home page GithubHelp logo

alibaba / alios-things Goto Github PK

View Code? Open in Web Editor NEW
4.6K 380.0 1.1K 1.72 GB

面向IoT领域的、高可伸缩的物联网操作系统,可去官网了解更多信息https://www.aliyun.com/product/aliosthings

License: Apache License 2.0

Makefile 0.19% C 78.00% Assembly 0.39% Python 2.46% Shell 0.83% C++ 5.18% HTML 10.81% Perl 0.03% Batchfile 0.02% Objective-C 0.22% JavaScript 0.94% CSS 0.27% CMake 0.16% Roff 0.43% M4 0.02% PowerShell 0.01% Metal 0.01% Meson 0.01% VBScript 0.01% Starlark 0.02%
iot embedded haas microcontroller os risc-v rtos haas-python

alios-things's Introduction

@mainpage AliOS Things 概述

更正文档      贡献说明

Join the chat at https://gitter.im/aliosthings/Lobby

AliOS Things 发布于2017年杭州云栖大会, 是 AliOS 家族旗下的、面向IoT领域的、高可伸缩的物联网操作系统,于2017年10月20号宣布在github上开源,当前最新的版本是 AliOS Things 3.3

架构总览

AliOS Things 支持多种CPU架构,包括:ARM,C-Sky,MIPS,RISCV等。

AliOS Things 适配了分层架构和组件架构。包括以下部分:

  • BSP: 板级支持包
  • HAL: 硬件适配层,包括WiFi,蓝牙,I2C,SPI,UART,Flash 等
  • Kernel: 包括Rhino RTOS 内核,VFS,KV Storage,CLI,C++ 等
  • Network: 包括LwIP 轻量级TCP/IP协议栈,BLE 低功耗蓝牙协议栈,LoRaWAN 协议栈等
  • Security: 包括TLS(mbedTLS and cutomized iTLS),ID2,SST(Trusted Storage),Crypto,TEE(Trusted Execution Environment) 等
  • AOS API: AliOS Things 提供给应用软件和组件的API
  • VFS驱动框架:设备驱动提供给组件和应用的服务接口
  • Component: 阿里巴巴增值和常用的物联网组件,包括LinkSDK,OTA(安全差分升级),ulog(日志服务),uData(传感器框架),uDisplay(图形接口),WiFi配网 等
  • Application: 丰富的示例代码

所有的模块都作为组件的形式存在,通过yaml进行配置,应用程序可以很方便的选择需要的组件。

AliOS Things 3.3新功能介绍

  • 统一的VFS接入方式,更标准的应用开发模式
  • 更小的系统,yaml构建方式更直观
  • 更全面的JavaScript和MicroPython轻应用开发框架的支持
  • 全面完善的组件、解决方案和系统文档。格式更规范与开发者友好
  • 升级了LinkSDK,新增设备引导服务、设备诊断、日志上报功能
  • 新增蓝牙配网、Wi-Fi Camera、OLED等组件,解决方案能直接调用

AliOS Things 3.3支持硬件

AliOS Things 3.3 版本支持官方已适配如下硬件

  • HaaS100
  • HaaS EDU K1
  • HaaS200

文档

快速上手

文档中心

贡献代码

物联网平台

社区

License

AliOS Things 开源源码遵循 Apache 2.0 license 开源协议。

Release Note

2022-02-22

  • py_engine: 新增ESP32模组芯片支持,删除冗余的micropython-lib文件
  • oasl_aos: 修改不匹配的返回类型
  • posix: 增加ESP_IDF_VERSION以区分不同的IDF版本
  • ota: 用mbedtls_md5_starts_ret替换mbedtls_md5_starts
  • amp_adapter: 支持IDF4.4
  • nodemcu_c3: 新增ESP32-C3开发板支持

2022-01-19

  • py_engine: 修改python引擎程编译方式为CMake,
  • HaaS200 支持HaaS-Python 2.0标准

2021-12-20

  • haas1000: 解决手动重启设备无法进行烧录的问题
  • rtl872xd: 解决手动重启设备无法进行烧录的问题
  • documentation: 添加驱动开发说明
  • haas_lib_bundles_python: HaaS2.0 API说明文档、趣味案例和硬件积木驱动
  • riscv64位架构支持

2021-10-25

  • posix: 清理warning, 支持scandir api
  • haas1000 ,haas200, pwm组件支持 pwm的南向接口
  • 修复timer oneshot模式下reload失效问题
  • 解决在windows下编译eduk1时提示命令过长,无法生成lds文件引起的编译失败问题

2021-10-12

  • JavaScript轻应用:IoT-Device修复publish内存泄漏问题、优化物模型初始化流程;IoT-Gateway增加NTP时间获取功能、完善拓扑管理、子设备注册和登陆登出等API;新增以太网配网功能,支持静态IP配网;新增UDP功能;更新JS轻应用版本信息获取接口;修复setTimeout、SPI的write问题等
  • python轻应用:micropython引擎升级到V1.17;API对齐HaaS轻应用接口标准;新增BLE支持;GPIO适配层重构;封装Python视觉AI接口
  • components:新增linkkit、ble_mesh、genie_service组件用于天猫精灵IoT生态的接入;
  • ucloud_ai:增加车牌识别和人体检测接口
  • solutions:根据系统性能决定-j线程数量提升编译速度;新增linkkit_genie_demo案例:基于HaaS200通过Wi-Fi接入天猫精灵IoT生态的案例;新增genie_mesh_demo案例:基于HaaS200实现可被天猫精灵连接的ble mesh
  • posix:头文件标准化
  • libc_stub:支持libc多线程
  • rhino:支持libc多线程
  • http:修复因为http buffer大小更新导致ota栈溢出问题
  • ota:修复ota断点续传失效问题
  • driver:新增PWM AOS接口;修复UART发送数据流中间会有过长的间隔的问题。

特别感谢为本期迭代提出宝贵意见和建议的开发者:陈文源、莫学良等

2021-08-26

  • JavaScript轻应用:修改http对接问题、支持tcp及mqtt组件、新增智慧农业样板间示例代码等
  • python轻应用:增加智能对话机器人python接口、增加token获取接口
  • ucloud_ai:增加智能对话机器人、增加token获取接口
  • ai_agent:增加“HaaS HaaS”语言唤醒功能、增加TFLite-Micro推理引擎
  • solution:添加TFLite-Micro离线快捷词唤醒案例
  • netmgr:支持根据指定channel进行扫描、修复wifi.conf内容为空导致异常问题等
  • HaaS100:更新驱动库、优化二级boot、产测功能可配置等
  • HaaS200:更新驱动库、优化二级boot等
  • 文档:新增haas-studio使用说明和代码风格规范

特别感谢为本期迭代贡献代码的开发者:WilliamArthur、忙碌的死龙等

2021-07-15

  • JavaScript轻应用:支持oss上传及下载功能、支持promise功能、添加ulog示例、修复问题若干
  • python轻应用:支持ota功能、linksdk动态注册、支持在线文件传输、framebuf显示功能、kv功能
  • ota:统一haas100和haas200的ota升级相关接口
  • HaaS100:支持MTD驱动子系统、修复SPI初始化失败等问题
  • vfs:修复多任务并发访问设备节点的互斥问题
  • netmgr:支持AP功能、完善连接失败的重试机制、修复上电无法自动重连问题等
  • cli:修复命令回显没有发送至云端问题
  • 文档:优化贡献代码说明、添加ping/ifconfig/tftp/iperf等命令说明

特别感谢为本期迭代提出宝贵意见和建议的开发者:空空、刘洪峰、刘超、莫学良、李大棚等

2021-06-10

  • JavaScript轻应用框架v3.0发布
  • 新增案例:JavaScript和Python双引擎运行环境,一个镜像同时包含两套轻应用框架
  • HaaS200支持PSRAM,4MB内存全解锁
  • HaaS200 OTA支持压缩升级,增加更多空间给系统分区
  • 优化HaaS200烧录成功率
  • 增加HaaS200 windows编译支持
  • 优化文档,优化各案例名称

2021-06-03

  • 发布蓝牙配网小程序
  • HaaS200 OTA功能发布
  • HaaS200 支持Python/Javascript轻应用
  • HaaS200 加强debug能力
  • HaaS200 驱动子系统发布(UART/GPIO/MTD/Watchdog/I2C)

2021-05-25

  • 增加HaaS200支持
  • CSI驱动系统发布,支持I2C,flash,Uart,GPIO,watchdog
  • 增加继电器外设案例
  • 优化蓝牙协议栈
  • 优化EDU K1烧录

2021-05-08

  • 实现蓝牙配网的功能
  • 优化文档
  • 解决linksdk_gateway_demo案例无法配网问题
  • mbedtls: 解决在package.yaml配置不生效问题
  • audio_demo: 解决打包文件找不到问题,感激空空发现这个问题
  • rfid_demo: 解决uart2打开失败问题,感激蒋才林发现这个问题
  • audio_demo: 优化步骤,自动下载三方代码
  • 新增语音播放、千里传音、屏幕显示、蓝牙配网、IDE一键热更新等众多功能

2021-04-28

  • 使用支付宝小程序对HaaS100进行配网、配置三元组以及操控HaaS LED灯的案例 客户紧急需要支付宝小程序案例

2021-04-21

  • 统一的VFS接入方式,更标准的应用开发模式
  • 更小的系统,yaml构建方式更直观
  • 更全面的JavaScript和MicroPython轻应用开发框架的支持
  • 全面完善的组件、解决方案和系统文档。格式更规范与开发者友好
  • 升级了LinkSDK,新增设备引导服务、设备诊断、日志上报功能
  • 新增蓝牙配网、Wi-Fi Camera、OLED等组件,解决方案能直接调用

alios-things's People

Contributors

alenxiao avatar andy2012zwj avatar caveguy avatar cheng-sg avatar chenlf123 avatar eastmoutain avatar ethanlcz avatar gewei144537 avatar huaianrenhnu avatar junjiec avatar librae8226 avatar lite-on-iot-foong avatar liu-zilong avatar loglong007 avatar msbtx avatar raulcxw avatar ray148289 avatar security-release avatar shinyshy avatar skylarcai avatar wanguojian avatar wushengtws avatar wuxn9999 avatar xiaom-github avatar xiaowenxia1 avatar xicaichen-hangzhou avatar yanxiaoyong-ch avatar yilumao avatar yx170385 avatar zejiang0jason 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  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

alios-things's Issues

有没有英文文档的计划?

目前的文档都是中文,为了让更多国外芯片厂商和开发人员参与进来,有没有计划发布英文版的文档?

文档更新

看到最新提交的代码IDE已经支持linux和Mac OS了,但是在讲解IDE部分的文档还是说目前只支持windows,希望文档和代码可以保持同步。

请问 usyscall syscall 在MCU ARCH/MCU上是怎么实现的

linxhost上面的例子没有编译usyscall syscall,
mk3060上面的例子也没有编译usyscall syscall,
怎么让usyscall syscall 在MCU ARCH/MCU上 编译进去;
usyscall syscall 系统调用 在MCU ARCH/MCU上是怎么实现的,怎么实现进入MCU核心态的

rhino

哈哈 我知道了

关于BINS=app/framework/kernel,看不到具体的介绍啊

sudo aos make helloworld@linuxhost
sudo aos make helloworld@b_l475e
sudo aos make helloworld@mk3060
sudo aos make helloworld@mk3060 BINS=kernel
sudo aos make helloworld@mk3060 BINS=app
以上几条命令编译都可以通过,但是下面的这几条会报错,请问是有什么要特别设置的吗?
sudo aos make helloworld@mk3060 BINS=framework
sudo aos make helloworld@b_l475e BINS=app
sudo aos make helloworld@b_l475e BINS=framework
sudo aos make helloworld@b_l475e BINS=kernel
sudo aos make helloworld@linuxhost BINS=app
sudo aos make helloworld@linuxhost BINS=framework
sudo aos make helloworld@linuxhost BINS=kernel

增加微秒级delay API

目前aos里只提供aos_msleep这样一个毫秒级的delay/sleep API。无法进行微秒级的时间控制,例如解析DHT11的数据编码。所以希望能提供一个微秒级的delay/sleep API,比如:aos_usleep

framework中相关说明较少

你好,目前framework中的一些简写没有说明,是否可以尽快补充相关说明,不然都不知道是啥。

Github 速度慢

github的速度真的很慢。每次clone代码都很长时间。请问有没有什么好的解决办法。

小建议

1.自我感觉目前文档这块比较偏向于介绍和使用方法。理论知识要少一些,建议将一些用到的物联网协议标准过参考资料通过外链的形式给出。方便新手系统学习。
2. 自我感觉文档中添加一些典型的应用案例更好,方便大家快速开发。

example/wifimonitor 的用途

  1. wifimonitor 的具体作用是啥? 它的README只有简单的一句话
  2. 这个 demo 目前编译(aos make wifimonitor@mk3060)无法通过, 提示 umesh_get_mac_address() 缺少参数
  3. 如何让这个 demo 跑起来?除了MK3060和PC外,还需要其它设备吗,如何操作?

AliOS-Things 在MAC上的配置

作为一个搞交互设计的小白,对AliOS-Things的应用前景感到很兴奋,很想利用它做一些场景性的探索。于是花了一点时间和怡然讨论整理出了AliOS-Things在MAC上的配置,供大家参考。MAC跟Windows的步骤其实差不多,主要是一些安装包的配置上会有些区别。

  1. 首先下载visual studio code,然后安装
    pasted graphic
  2. 安装之后打开,点击红圈进入安装扩展页面
    pasted graphic 2
  3. 在应用搜索中输入alios,唯一一个的扩展就是它
    pasted graphic 3
  4. 然后下载安装alios-studio,需要重启一次VS Code。重启后扩展生效,回到欢迎页面点击右下角create project,或者用键盘command+P打开命令窗口输入“>alios-studio:Create project”
    pasted graphic 4
    pasted graphic 5
  5. 第一次创立项目的时候需要配置SDK,注意这时对比windows的界面是多了一个tool-chain path的
    pasted graphic 6
  6. SDK path需要从GitHub上下载alios-things的开发包
    pasted graphic 7
  7. 我个人把它放到VS Code的extension目录下然后解压,注意这个.vscode是隐藏的,需要按command+shift+. 显示
    pasted graphic 8
  8. 除此之外还需要下载交叉工具链
    pasted graphic 9
  9. 下载解压后复制路径到tool-chain path里面
    pasted graphic 10
    然后就可以create project了,之后流程跟windows一样了。

对文档的一些建议和改动

AliOS的文档目前是托管在仓库的Wiki上面的,但是个人觉得查阅起来没那么方便,因此用 Shpinx 框架对文档做了些改动:

  • 将其源码放到了 doc 目录下( 点这里查看)
  • 将生成的页面托管在 http://alios-things-doc-test.readthedocs.io 上面了
  • 将文档源码由 markdown 变为 reStructuredText 了(主要是为了支持 Sphinx 的更多功能)

这样修改后的一些好处

  • 可以通过doxygen自动从源代码中抽取注释并形成API文档,避免手动写API文档,最终自动生成的API文档的效果可以看 这里
  • 文档与源码维护在同一个仓库中,同时更新,防止今后出现文档、源码不匹配的现象
  • 由于是在同一个仓库中,今后每次Release新版本时都会有对应该版本的文档
  • 可以直接生成离线文档,例如 PDF、HTML、EPUB等
  • 如果今后有英文文档,也可以很方便地进行管理
  • 文档页内可以自动生成目录,整体也可以自动生成目录,且可折叠,方便查看文档
  • 可以对整个文档进行搜索

不过这样也有一些不好的地方,例如:

  • 有少量API的各式并非完全遵循Doxygen格式,因此需要做少量修改
  • reStructuredText 的语法跟 markdown 的语法有些区别

目前只是把基本架子搭建好了: http://alios-things-doc-test.readthedocs.io
如果觉得这样做有意义的话,我就继续做
如果觉得这样做没啥意义的话,我就不继续做下去了

ESP32 libdriver.a 库文件 FreeRTOS 接口缺失

在封装乐鑫提供的 GPIO 接口 .\platform\mcu\esp32\bsp\include\driver\include\driver\gpio.h 中断相关的函数时(gpio_isr_handler_add、gpio_isr_handler_remove、gpio_install_isr_service、gpio_uninstall_isr_service),编译报错找不到 vTaskEnterCritical 和 vTaskExitCritical 两个与临界区相关的操作,进一步得知两者来源于 esp-idf 中 FreeRTOS 组件中, aos 似乎没有将两者编译到目标 \platform\mcu\esp32\lib\libdriver.a 中,也没有提供 FreeRTOS 组件。

[ERROR-Build] ././platform/mcu [ERROR-Build] /esp32/lib/libdriver.a(gpio.o):(.literal.gpio_isr_handler_add+0x14): undefined reference to vTaskEnterCritical'
[ERROR-Build] ././platform/mcu/esp32/lib/libdriver.a(gpio.o):(.literal.gpio_isr_handler_add+0x18): undefined reference to vTaskExitCritical' [ERROR-Build] ././platform/mcu/esp32/lib/libdriver.a(gpio.o): In function gpio_isr_handler_add':
[ERROR-Build] /home/junjie-cai/github/esp-idf-alios/components/driver/./gpio.c:428: undefined reference to vTaskEnterCritical' [ERROR-Build] /home/junjie-cai/github/esp-idf-alios/components/driver/./gpio.c:428: undefined reference to vTaskExitCritical'
[ERROR-Build] ././platform/mcu/esp32/lib/libdriver.a(gpio.o): In function gpio_isr_handler_remove': [ERROR-Build] /home/junjie-cai/github/esp-idf-alios/components/driver/./gpio.c:428: undefined reference to vTaskEnterCritical'
[ERROR-Build] /home/junjie-cai/github/esp-idf-alios/components/driver/./gpio.c:428: undefined reference to vTaskExitCritical' [ERROR-Build] ././platform/mcu/esp32/lib/libdriver.a(gpio.o): In function gpio_install_isr_service':
[ERROR-Build] /home/junjie-cai/github/esp
[ERROR-Build] -idf-alios/components/driver/./gpio.c:406: undefined reference to vTaskEnterCritical' [ERROR-Build] /home/junjie-cai/github/esp-idf-alios/components/driver/./gpio.c:413: undefined reference to vTaskExitCritical
[ERROR-Build] '
[ERROR-Build] collect2.exe: error: ld returned 1 exit status`

尝试通过更底层操作重写中断相关函数,但程序无法正常运行(无效果、跑飞重启),请问该如何解决此问题从而调用乐鑫 gpio 接口中断相关函数,能力有限,感谢解答……

studio没有开源吗

打算自己写个nodemcu的vscode插件。想知道vscode插件上的串口功能是如何实现的,以为可以找到源码。结果发现没有公布插件源码。

开发组可以告诉一下studio串口部分实现的思路吗,或者提供一下相关参考文档也可以

谢谢😁

物联网任重道远啊

大致看完readme,对alios-things具体干啥的一头雾水。建议给个实际的案例说明,而不是仅仅宽泛的说明我们啥都能干。
另外alios-things跟openwrt,lede比有啥优势呢?还是说大家瞄准的方向不一样。

AliOS Things移植硬件平台要求

你好,我想学习下移植AliOS,请问对硬件平台有什么要求?如果我用FPGA开发板烧一个MIPS的系统,可以移植嘛?

aos_uart_send()问题

  1. aos_uart_send()和vfs有什么关系?为什么放在vfs.c里面?
  2. 不能写死用uart0,必须是可以配置的,不同的板子,debug uart不一定是UART0

希望弄重写下部分说明

第一次看到这个项目主页时一脸懵逼。原因很简单,主页上面没有开发适用平台(核心架构)和系统基本使用方法。希望在这个问题上参考下https://github.com/RT-Thread/rt-thread,下载链接并不是系统镜像而是一大堆其他软件的下载链接,而这些链接放在系统开发的方法中比较好吧。
文档排版也相当混乱,一会儿是中文,一会儿是英文,如果考虑国际化推广,务必考虑双语种。

[ESP32] 如何烧写?

除了直接用 esptool.py 之外,没有找到相关使用 aos 命令来进行烧写的文档。
VS 中用alios-stuido 的 Upload,输出为:

[INFO-Build] Run "aos make -e helloworld@esp32devkitc JTAG=jlink download"

settings.json 中已把 jlink 相关的删除了。

编译问题

编译过程中出现下面的log,然后就没法继续编译了,重新启动进行编译会出现gcc相关的找不到文件等错误。
[INFO-Build] -------------OUTPUT START-------------
[INFO-Build] Making config file for first time
[INFO-Build]
[INFO-Build] processing components: jingshuiqi mk3060 platform/mcu/moc108 vcall init auto_component
[INFO-Build]

[AliOS-studio][ESP32] tool chain path.

设了 esp32 的 tool chain path,一直不会生效,无休止的跳出 “The Path is required!”,必须要设成 arm 的。难道内部只校验了 arm tool chain 的 prefix?

atapp@linuxhost 运行会 crash

  1. 如题,在Linux平台上运行 atapp就会 crash.
  2. 文件platform/mcu/linux/soc/uart.c中的函数 hal_uart_init()的 pdrv 指针直接 hard-code 指向 uart0,这应该也不合理

MQTT topic is forced to start with slash

I'm trying to run a mqtt app on my device. After several unsuccessful test, I noticed that the mqtt client of AliOS will check the topic name and if the topic name does not start with slash "/", error would be return. Anyone could explain why?

编译之后display_map_summary失败

按照例程编译helloworld,结果编译出现错误,二进制文件已经生成,且可以执行。但是编译还是存在错误,具体如下:
Build AOS Now
Traceback (most recent call last):
File ".//build/scripts/map_parse_gcc.py", line 15, in
mem_config_text = re.findall('Memory Configuration\n\nName Origin Length Attributes\n([\s\S]+)\nLinker script and memory map', s)[0]
IndexError: list index out of range
build/aos_target_build.mk:239: recipe for target 'display_map_summary' failed
make[1]: *** [display_map_summary] Error 1
build/Makefile:151: recipe for target 'main_app' failed

请教 modules/fs/fatfs/

请问,modules/fs/fatfs/ 里面为何不考虑操作 “片上FLASH” 的接口呢? 特别是在 diskio.c 文件中。

[bug] CLI 命令 time 总是返回 0 ms

MK3060 开发板, 随便烧写一个 APP(例如 helloworld),板子上电后
在串口终端输入命令 time
总是返回 UP Time 0ms


进一步检查,发现应该是函数 aos_cli_printf 的问题,例如,对于我下面的代码:

long long testval = 8888;

static void uptime_cmd(char *buf, int len, int argc, char **argv)
{
    testval = aos_now_ms();
    aos_cli_printf("time: %ld ms, 22=%d \r\n", testval, 22);
    aos_cli_printf("hello:%s \r\n", "hello");
    aos_cli_printf("UP time %ld ms \r\n", aos_now_ms());
}

程序的输出却是这样的:

# time

time: 22 ms, 22=2364 
hello:hello 
UP time 0 ms 

更进一步来讲的话,应该是库函数 vsnprintf 不能正确地对字符串进行格式化,但是我没找到这个函数的源码。


PS: 我的 arm-none-eabi-gcc 的版本是:

work@ubuntu:~/me/AliOS-Things$ /opt/gcc-arm-none-eabi-5_4-2016q3/bin/arm-none-eabi-gcc --version
arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 5.4.1 20160919 (release) [ARM/embedded-5-branch revision 240496]
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

研究了半天,没大看明白, 还是想给REPO的Master提些建议。

这个REPO还处在搭建期, 热心的代码贡献者(或合作者 )都希望把自己的体系放进阿里的平台中,可以理解。我也盼望着国产MCU或IC模块产业壮大起来, 但在代码结构方面还想几条建议:

  1. 感谢MXCHIP人员的努力和贡献。但却大量照搬了MiCO的代码, STM32系列的移植也是使用MiCO的模版。有些细节上需要注意。
    见 AliOS-Things/platform/mcu/include/platform_peripheral.h 第27行
MCU-specific data types are defined in <MiCO-SDK>/platform/MCU/<MCU_family>/platform_mcu_peripheral.h

但这个库文件却不是所有MCU的通用文件,在其它非MiCO移植的MCU目录下是没有的。另外还有些MiCO的参数和结构命名。是不是AliOS-Things其实是基于MiCO的RTOS的? 即便是这样,也最好是移植,不要照搬。
建议添加一个变体variants目录,将特殊的定义和宏都放在变体variants目录。

还有一点,在STM32F和L系列中ST的HAL 库,CMSIS库(可以用在IAR和Keil),但用了MiCO编程结构和习惯,学习成本太高。

  1. ESP8266仅进行网络层和串口flash空间分区的定义, 找不到引脚结构,HSPI,内部RTC,DeepSleep, 唤醒等等相关定义和注解。不会是只使用了ESP8266 的AT命令模式吧?! 现在还不明白ESP-8266作为核心(不依赖其它MCU)的项目如何操作, 我是在PlateformIO和Arduino上编译的。

  2. 引导+框架+应用的多Bin结构的FOTA想法很不错,虽然Repo是Apache 2.0 的开源授权,但还是建议不要包含太多无法解读的".bin"和“.a“二进制文件。理解并尊重专利,不过我不会在我的“联网”项目中使用不知道源码的底层文件,尤其还是WiFi相关的文件,实在懒得写完芯片再用WireShark、端口扫描类程序做安全测试。
    建议说明这些bin和静态库a文件的编译过程和方法。我看很多二进制文件是可以GIT到源码自己编译出来的。

之所以写这么多,是希望AliOS-Things 能越做越好,能真正用起来,让**自主的IoT项目越来越多。

以后会常来看看。

祝好!
CS.Nol

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.