- 博客(7)
- 资源 (1)
- 收藏
- 关注
原创 关于STM32 使用ARM GCC编译链接C++生成固件的压缩、减少和优化大小的几个编译链接参数
随之进来的物联网的兴起,要像安卓那样建立生态,需要跟多的开发者投入其中,那么就要降低门槛。物联网系统中arm 自家的mbed 系统就采用了c++,用对象的形式封装了外设驱动,比如GPIO口封装成AnalogIn,AnalogOut,BusIn,BusInOut,BusOut,DigitalInOut,DigitalIn,DigitalOut等类。使开发者可以不用非常熟悉cortex-m 内
2016-09-28 21:33:08 4768 3
原创 stm32 使用malloc申请内存和free释放内存造成的内存碎片测试
本例中使用stm32c8t6 mdk3.5 和 gcc-arm-none-eabi-4_9。使用EmBitz IDE ARM GCC Compiler。单片机是不建议使用 内存管理函数,但是在物联网应用当中,内存资源很是宝贵,MQTT 协议需要SSL TLS,数据签名 MD5,RSA等等 使用很是耗费内存资源,使用内存管理函数就显得很有必要了。经过测试不断的malloc和free
2016-09-26 23:36:45 16178 1
原创 stm32 使用arm gcc 实现malloc 和 free
对于 stm32c8t6 来说 rom 是64k ram 是 20k。使用静态库的libnosys.a 实现的_sbrk 函数 是可以使用malloc 和free的。但是有个问题就是没有边界检查。ram 的范围是0x20000000-0x20005000,申请的内存会超过 0x20005000。这样就好引发HardFault_Handler 异常。可以这样重定向_sbrk 函数。堆增长的时
2016-09-26 23:16:37 3483
原创 ARM GCC 链接错误 引用未定义函数 _read _write _sbrk 解决和重定向
使用 printf ,scanf ,malloc 等函数需要实现`_read'`_lseek'`_isatty'`_fstat'`_write'`_sbrk' 函数。stm32 使用stdlib 时候编译提示错误:d:/gcc-arm-none-eabi-4_9/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib
2016-09-24 21:35:50 20028 6
原创 stm32 基于ARM GCC Compliler(EmBitz IDE) print重定向到串口打印输出 com serial
print重定向到串口打印输出 com serial,使用的方法是重新实现函数 int _write (int fd, char *pBuffer, int size) 覆盖原来的_write 函数。在使用 arm gcc 编译链接的过程可能会出现错误undefined reference to `_sbrk' `_close' `_fstat' `_read' `_write'
2016-09-24 17:10:46 9492 4
原创 Embitz 使用ARM GCC Compiler(generic) 兼容性问题<signal handler called>
ARM GCC Compiler(generic) 编译程序运行 validate_structure 异常 ,跳到 WWDG_IRQHandler。查看map文件发现 .text.validate_structure 0x08004a70 0x2a4 D:\gcc-arm-none-eabi-4_9\bin\..\arm-none-eabi\li
2016-09-23 15:51:59 3905 2
原创 在 mbed平台使用 airkiss_cloudapi sdk 过程中碰到问题解决方法
在 mbed平台使用 airkiss_cloudapi 过程中碰到不少问题。问题的根源在于mbed大部分驱动是用c++实现的。c++(在mian.cpp中) 调用 c静态库 libwxcloud.a 中的函数(airkiss_cloud_loop()),反过来 c静态库 libwxcloud.a 引用c 函数(airkiss_porting.cpp中的ak_socket airkiss_tcp
2016-09-21 22:57:51 1943 1
DS9773_f030_DataSheet.pdf
2020-02-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人