全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件
阿里云物联网套件

设备移植相关问题

更新时间:2017-10-17 19:54:58

IoT_SDKV2.0在高通MDM9206平台上移植的已知问题

编译问题
  1. ArmCC不支持C语言中变量定义和逻辑语句混杂, 声明段落必须在逻辑段落之前完整结束
  2. ArmCC不支持用花括弧的方式定义匿名结构体实例作为右值
  3. ArmCC处理枚举类型时, gcc及其变种按照int处理, 而armcc有严格的编译时检查, 多按unsigned int处理
  4. ArmCC不支持在if, while, for逻辑的判断语句中有变量赋值
  5. 函数内多分支情况, ArmCC对不可达分支处的return语句严格报错导致编译失败
  6. ArmCC不支持返回值被声明为枚举类型的函数, 实际上返回值是int等gcc所认为的等价数据类型
  7. 标准库头文件内容有差异, gcc编译时可以找到的定义如size_t, typeof等, 在armcc上找不到
  8. ArmCC不支持GNU风格扩展函数, 如vasnprintf, asprintf
  9. ArmCC不支持GNU风格扩展数据结构, 如匿名结构体, 结构体匿名成员赋值等
运行问题
  1. 使用标准库函数tolower(), 需要对应引用头文件”ctype.h”, 不能用, 否则运行会卡死
  2. 使用高通的串口打印函数, 不能用”%s”格式打印0长度的字符串, 否则运行会卡死
  3. 在HTTP Client的代码如src/utils/misc/utils_httpc.c中, 使用了C标准库函数sscanf(), 由于高通的C库问题, 这些代码运行到时会卡死
本文导读目录