alibaba / alios-things Goto Github PK
View Code? Open in Web Editor NEW面向IoT领域的、高可伸缩的物联网操作系统,可去官网了解更多信息https://www.aliyun.com/product/aliosthings
License: Apache License 2.0
面向IoT领域的、高可伸缩的物联网操作系统,可去官网了解更多信息https://www.aliyun.com/product/aliosthings
License: Apache License 2.0
作为一个搞交互设计的小白,对AliOS-Things的应用前景感到很兴奋,很想利用它做一些场景性的探索。于是花了一点时间和怡然讨论整理出了AliOS-Things在MAC上的配置,供大家参考。MAC跟Windows的步骤其实差不多,主要是一些安装包的配置上会有些区别。
AliOS是否提供所支持的平台(例如MK3060)的一些硬件接口开发的API(例如GPIO,ADC,UART,I2C等)?
如果提供的话,可以指出相关代码文件与文档介绍位置吗?
如果没有提供,不知道是否可以提供一些相关资料的链接?
感谢回答!
设了 esp32 的 tool chain path,一直不会生效,无休止的跳出 “The Path is required!”,必须要设成 arm 的。难道内部只校验了 arm tool chain 的 prefix?
在封装乐鑫提供的 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 接口中断相关函数,能力有限,感谢解答……
建议增加 travis、shippable之类的CI服务,对PR进行检查,防止merge有问题的PR
目前的文档都是中文,为了让更多国外芯片厂商和开发人员参与进来,有没有计划发布英文版的文档?
platform/mcu/linux/soc/uart.c
中的函数 hal_uart_init()
的 pdrv 指针直接 hard-code 指向 uart0,这应该也不合理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.
除了直接用 esptool.py 之外,没有找到相关使用 aos 命令来进行烧写的文档。
VS 中用alios-stuido 的 Upload,输出为:
[INFO-Build] Run "aos make -e helloworld@esp32devkitc JTAG=jlink download"
settings.json 中已把 jlink 相关的删除了。
官网说可以用js写代码,但是wiki和源码似乎没有发现这部分的功能呀
AliOS的文档目前是托管在仓库的Wiki上面的,但是个人觉得查阅起来没那么方便,因此用 Shpinx 框架对文档做了些改动:
这样修改后的一些好处:
不过这样也有一些不好的地方,例如:
目前只是把基本架子搭建好了: http://alios-things-doc-test.readthedocs.io
如果觉得这样做有意义的话,我就继续做
如果觉得这样做没啥意义的话,我就不继续做下去了
rt
aos make helloworld@b_l475e BINS=kernel
aos make helloworld@b_l475e BINS=app
这个REPO还处在搭建期, 热心的代码贡献者(或合作者 )都希望把自己的体系放进阿里的平台中,可以理解。我也盼望着国产MCU或IC模块产业壮大起来, 但在代码结构方面还想几条建议:
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编程结构和习惯,学习成本太高。
ESP8266仅进行网络层和串口flash空间分区的定义, 找不到引脚结构,HSPI,内部RTC,DeepSleep, 唤醒等等相关定义和注解。不会是只使用了ESP8266 的AT命令模式吧?! 现在还不明白ESP-8266作为核心(不依赖其它MCU)的项目如何操作, 我是在PlateformIO和Arduino上编译的。
引导+框架+应用的多Bin结构的FOTA想法很不错,虽然Repo是Apache 2.0 的开源授权,但还是建议不要包含太多无法解读的".bin"和“.a“二进制文件。理解并尊重专利,不过我不会在我的“联网”项目中使用不知道源码的底层文件,尤其还是WiFi相关的文件,实在懒得写完芯片再用WireShark、端口扫描类程序做安全测试。
建议说明这些bin和静态库a文件的编译过程和方法。我看很多二进制文件是可以GIT到源码自己编译出来的。
之所以写这么多,是希望AliOS-Things 能越做越好,能真正用起来,让**自主的IoT项目越来越多。
以后会常来看看。
祝好!
CS.Nol
你好,目前framework中的一些简写没有说明,是否可以尽快补充相关说明,不然都不知道是啥。
第一次看到这个项目主页时一脸懵逼。原因很简单,主页上面没有开发适用平台(核心架构)和系统基本使用方法。希望在这个问题上参考下https://github.com/RT-Thread/rt-thread,下载链接并不是系统镜像而是一大堆其他软件的下载链接,而这些链接放在系统开发的方法中比较好吧。
文档排版也相当混乱,一会儿是中文,一会儿是英文,如果考虑国际化推广,务必考虑双语种。
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?
你好,我想学习下移植AliOS,请问对硬件平台有什么要求?如果我用FPGA开发板烧一个MIPS的系统,可以移植嘛?
krhino stm32l496移植示例补充
linxhost上面的例子没有编译usyscall syscall,
mk3060上面的例子也没有编译usyscall syscall,
怎么让usyscall syscall 在MCU ARCH/MCU上 编译进去;
usyscall syscall 系统调用 在MCU ARCH/MCU上是怎么实现的,怎么实现进入MCU核心态的
1.自我感觉目前文档这块比较偏向于介绍和使用方法。理论知识要少一些,建议将一些用到的物联网协议标准过参考资料通过外链的形式给出。方便新手系统学习。
2. 自我感觉文档中添加一些典型的应用案例更好,方便大家快速开发。
FYI.
哈哈 我知道了
请问,modules/fs/fatfs/ 里面为何不考虑操作 “片上FLASH” 的接口呢? 特别是在 diskio.c 文件中。
大致看完readme,对alios-things具体干啥的一头雾水。建议给个实际的案例说明,而不是仅仅宽泛的说明我们啥都能干。
另外alios-things跟openwrt,lede比有啥优势呢?还是说大家瞄准的方向不一样。
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
看了看GUI那个工程好像用aos 没法编译出来bin 难道要用keil?
有M0移植成功的案例或MCU嗎?
看到最新提交的代码IDE已经支持linux和Mac OS了,但是在讲解IDE部分的文档还是说目前只支持windows,希望文档和代码可以保持同步。
最后, stm32l0系列可以支持吗?
没看到实现文件
aos make wifimonitor@mk3060
)无法通过, 提示 umesh_get_mac_address() 缺少参数stm系列板卡配置中没有*.mk文件?
不知道是不是我下载代码不全?还是……
通过网页浏览也没有发现mk文件?
另外,支持的开发板比较少,支持的核种类更少,只支持Cortex-M4?
这个SDK是用pip install aos-cube安装的么?
打算自己写个nodemcu的vscode插件。想知道vscode插件上的串口功能是如何实现的,以为可以找到源码。结果发现没有公布插件源码。
开发组可以告诉一下studio串口部分实现的思路吗,或者提供一下相关参考文档也可以
谢谢😁
目前aos里只提供aos_msleep这样一个毫秒级的delay/sleep API。无法进行微秒级的时间控制,例如解析DHT11的数据编码。所以希望能提供一个微秒级的delay/sleep API,比如:aos_usleep
如题,在github上没有找到这个资源;
github的速度真的很慢。每次clone代码都很长时间。请问有没有什么好的解决办法。
编译过程中出现下面的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]
按照例程编译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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.