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一类等。值得注意的
阅读全文
RT Thread IPC总结
摘要:1、关中断的方法可以实现互斥,但是这时候是无法响应中断的2、调度器上锁可以实现多任务的互斥,但是无法实现与中断的互斥3、信号量,轻量级的互斥机制,因为初始值不一定为1,所以他没有所有者(拥有者)的概念,且没有解决优先级翻转的问题4、互斥量是管理临界资源的一种有效手段,它使用优先级继承方法解决了优先级翻转的问题5、事件主要特点是可以实现一对多,多对多的同步。事件集的关联形式可以是“逻辑或”和“逻辑与”。6、前面是多任务间的同步与互斥,邮件是线程,中断服务,定时器向线程发送消息的有效手段。邮箱与线程对象等之间是相互独立的。线程,中断服务和定时器都可以向邮箱发送消息,但是只有线程能够接收消息(因为当
阅读全文