连接Xively云
摘要:1.注册Xively开发账号 在https://xively.com注册一个开发账户,收到激活邮件后激活,注意,如果登陆后无法进入develop页面,请退出重新登陆。2.添加设备3.获取FeedID4.根据FEED ID,向服务器传输数据或者获取数据(使用DEV HTTP CLIENT工具)4.1...
阅读全文
undefined reference to `_sbrk', `_write', `_lseek', `_read'
摘要:现象: 在用GCC编译嵌入式MCU程序时,由于使用了第三方的库,出现了类似undefined reference to `_sbrk', `_write', `_lseek', `_read'的连接错误。 原因: 使用了类似printf,malloc,fopen,fread之类的库函数,但是嵌入式MCU平台是不支持的。解决办法: 实现相应的库函数或者去掉。 实际上,遇到这类问题的人往往是尝试修改了部分的函数调用,但是还是报类似的错误,那么原因就是没有修改完全,一般的库函数包括printf,malloc,realloc一类,fopen,fread一类等。值得注意的
阅读全文
Lwip lwip_recvfrom函数一个数据包不能分多次读取。
摘要:最近在写一个基于Lwip协议栈的网络程序,对于一包数据,想先获得包头信息,再根据包头信息读取后面的数据,但是调用recvfrom后,发现读取后面的数据读取不到,进一步查阅发现,原来对于UDP协议,一次读取完毕后,buf中存放的数据被清除。要想从中正确读取所有的数据有两种方法: 1.知道一包数据长度,直接全部读出。 2.读取函数的参数中引入MSG_PEEK,先尝试读取一些数据,然后读出全部数据。
阅读全文
keil(MDK)中出现error: #513: a value of type "int" cannot be assigned to an entity of type "char *",即函数返回值无法赋值给对应变量的错误
摘要:对于Value=Fun()调用,出错究其原因一般有以下几点:1、函数返回值是int型,Value是char *2、函数返回值是char*,Value是char *,但是调用Fun函数的文件没有包含Fun函数的声明。(keil才会出现)。3、其它未知
阅读全文
STM32 U盘
摘要:移植了STM32F2系列的U盘例程,可以实现U盘功能,但是引入RT Thread的文件系统之后,文件系统不能实现读写功能,对比RT Thread的例程才发现,RT Thread将SDIO.c文件中的SD_WriteMultiBlocks函数体里注释掉了//WriteAddr /= 512;所以不成功,文件系统相关的参数不好改,只好将U盘例程usbd_storage_msd.c中的读写入口地址不再乘以512,这样即可。
阅读全文
ARM(Cortex-M3)的中断向量
摘要:记得在DSP TMS32F2812中,中断向量的初始化是由一段地址拷贝代码完成的,在STM32(Cortex-M3)中没有显示的代码拷贝,只有启动代码进行了向量的初始化,一直以为是编译器在程序影像中自己完成了相关向量的拷贝,即,拷贝到固定的NVIC区,事实上并不是这样,cortex-m3并没有一块专门用于存放NVIC向量表的地方,这张表实际是存放在代码(程序映像)的开始,下面引用cortex-M3权威指南进行解释: 当发生了异常并且要响应它时,CM3需要定位其服务例程的入口地址。这些入口地址存储在所谓的“(异常)向量表”中。缺省情况下,CM3认为该表位于零地址处,且各向量占用4字节。因此每..
阅读全文