GithubHelp home page GithubHelp logo

alibaba / alios-things Goto Github PK

View Code? Open in Web Editor NEW
4.5K 4.5K 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%
embedded haas haas-python iot microcontroller os risc-v rtos

alios-things's Issues

rhino

哈哈 我知道了

希望弄重写下部分说明

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

关于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

AliOS Things移植硬件平台要求

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

请教 modules/fs/fatfs/

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

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一样了。

增加微秒级delay API

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

example/wifimonitor 的用途

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

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?

Github 速度慢

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

小建议

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

aos_uart_send()问题

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

研究了半天,没大看明白, 还是想给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

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

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

物联网任重道远啊

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

文档更新

看到最新提交的代码IDE已经支持linux和Mac OS了,但是在讲解IDE部分的文档还是说目前只支持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
如果觉得这样做有意义的话,我就继续做
如果觉得这样做没啥意义的话,我就不继续做下去了

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

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

[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.

studio没有开源吗

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

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

谢谢😁

framework中相关说明较少

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

[ESP32] 如何烧写?

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

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

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

atapp@linuxhost 运行会 crash

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

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 接口中断相关函数,能力有限,感谢解答……

编译问题

编译过程中出现下面的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]

编译之后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

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.