IAR是常用的嵌入式开发工具,自带编译链接环境,因此编译和链接的配置和ARM GCC是有所区别的,在最近的一个项目中我们需要链接一些已经编译好的二进制文件到最终的二进制文件中,所以就研究了一下链接预编译的二进制文件的方法。
我的代码我做主
IAR是常用的嵌入式开发工具,自带编译链接环境,因此编译和链接的配置和ARM GCC是有所区别的,在最近的一个项目中我们需要链接一些已经编译好的二进制文件到最终的二进制文件中,所以就研究了一下链接预编译的二进制文件的方法。
Kinetis MCU中Flash一般是用来保存中断向量表、用户程序,数据等内容,有的MCU Flash还支持FlexNVM和FlaxRAM。Flash的一个基本特性就是只能写0,不能写1,所以每次对flash进行写操作的时候都需要先进行擦除操作。所以对Flash的连续编程(中间不擦除)的操作是不支持的。
ARM GCC本身确实比较方便,自身集成了一些标准的C库,用来做开发非常方便,但是对于Flash比较紧张的MCU来讲,标准库还是有一些大,比如最近用到的一个MCU,flash只有64K,一个含有标准库的简单程序产生的二进制文件就到了将近30K左右,这个是不能忍的,于是就要通过删除标准库来缩减程序大小,怎么说呢,ARM GCC用标准库什么参数也不用加,但是如果想省掉标准库可就麻烦很多了。
最近有同事问搭梯子的事情,因为本人对这方面折腾的比较多,而最近又有了一些新的shadowsocks配置,所以就在这里写篇日志记录一下,这里主要介绍在virmach上搭建shadowsocks服务,并配置比较新的加密算法chacha20-ietf-poly1305的基本过程。
Kinetis LPI2C模块支持标准、快速、高速和超高速几种不同的传输模式。该模块也支持SMBus功能,也支持4线模式。主机模式支持:4字长度的命令/发送FIFO;4字长度的接收FIFO;FIFO中命令自动等待空闲时传输;命令FIFO支持发送开始和终止信号;支持FIFO空时自动发送停止信号;支持主机外部触发发起传输;支持数据匹配;支持各种状态检测和超时检测。从机模式:支持7bit和10bi...