【技术实现步骤摘要】
一种C编译器利用海明距离优化SRAM页选择的方法及系统
本专利技术属于嵌入式C编译器设计
,涉及一种C编译器利用海明距离优化SRAM(静态存储器)页选择的方法。
技术介绍
市场上应用程序五花八门,这些应用程序基本上都是使用一种或者多种高阶语言和一套优秀的集成开发环境IDE(包含编译工具链)来进行开发,但是对于嵌入式领域来说,高阶的C语言可以说是嵌入式领域的王者开发语言,因为C语言不管从开发效率、移植性、代码可读性来说都是汇编语言和其他高阶语言无法比拟的,而使用C语言就离不开C编译器。目前市面上的C编译器产品有很多,且很多C编译器效率都是非常高,比如Clang、GCC、PICC、KeilC、IARC等编译器编译效率都是业内翘楚,但是针对一些多SRAM(静态存储器)页的体系结构中,一些编译器为了设计的便利性,在页选择过程中插入切换页的一条伪指令如PICC的banksel语句,然后汇编器根据该芯片的型号生成对应的页选择机器指令,假设某种芯片IC型号SRAM有4页,每一页为一个BANK,那么banksel伪指令语句被汇编器解析就会生成两条指令,这两条指令是设置页寄存 ...
【技术保护点】
1.一种C编译器利用海明距离优化SRAM页选择的方法,包括如下步骤:S1,依次遍历函数的所有基本块,把任一基本块中的指令保存到顺序容器中;S2,根据SRAM中当前Bank值和访问Bank值,计算出海明距离值,访问Bank值是指将要访问SRAM变量所在的Bank值;S3,当存在访问SRAM变量时,根据海明距离值来决定是否要插入页选择指令,以及插入何种页选择指令。
【技术特征摘要】
1.一种C编译器利用海明距离优化SRAM页选择的方法,包括如下步骤:S1,依次遍历函数的所有基本块,把任一基本块中的指令保存到顺序容器中;S2,根据SRAM中当前Bank值和访问Bank值,计算出海明距离值,访问Bank值是指将要访问SRAM变量所在的Bank值;S3,当存在访问SRAM变量时,根据海明距离值来决定是否要插入页选择指令,以及插入何种页选择指令。2.根据权利要求1所述的C编译器利用海明距离优化SRAM页选择的方法,其特征在于,所述S1步骤中具体包括:S11、初始化获取基本块指令;S12、获取函数的一个基本块,获取失败则结束;S13、从基本块中取出一条指令,保存该指令到特定的容器中,如取出失败则结束;S14、从基本块中取出下一条指令,保存该指令到特定的容器中,如取出失败则获取函数的下一个基本块。3.根据权利要求1所述的C编译器利用海明距离优化SRAM页选择的方法,其特征在于,所述S2步骤中还包括:当计算出的海明距离值为1时,还要计算出这两个Bank值之间的不同处于哪个bit位置上。4.根据权利要求3所述的C编译器利用海明距离优化SRAM页选择的方法,其特征在于,所述S2步骤中具体包括:S21、初始化获取海明距离值;S22、设置当前Bank值为Src,下一条访问SRAM指令的Bank值的值为Dest;S23、获取Src的第N位的值,获取Dest第N位的值,N=0‐8为整数;S24、判定上述第N位的两个值是否不同,是则海明距离值加1,否则获取Src的第N+1位的值与获取Dest第N+1位的值;S25、保存位值不同的位置值。5.根据权利要求1所述的C编译器...
【专利技术属性】
技术研发人员:陈元丰,
申请(专利权)人:芯海科技深圳股份有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。