SDCC(Small Device C Compiler)是一个优化的 ANSI - C交叉编译器,目标CPU为基于Intel 8051, Maxim 80DS390, Zilog Z80 和Motorola 68HC08 的单片机。
SDCC同时带有一个源代码级调试工具SDCDB,使用的是Daniel's s51 仿真器当前版本。SDCC是由Sandeep Dutta 所写的,并依据GPL license 发行。
sdcc的特点:
1、SDCC的sdas和sdld 是基于ASXXXX的交叉编译工具和链接工具,他们都是免费开源的软件,依据GNU General Public License (GPL) 发布。
2、有针对特定MCU的编程语言扩展,可以高效的使用基本的硬件资源。
3、有大量的标准优化,如全局字表达式削减,循环优化(无任何操作的循环优化,归纳变量循环优化,逆循环优化), 常量合并的传播,复制传播,死代码删除, 'switch'语句的转移表优化。
4、针对特定MCU的优化,包括全局寄存器分配算法。
5、特定MCU后端适应能力,能够很好的适配其他的8位的MCU。
扩展资料:
交叉编译出现和流行是和嵌入式系统的广泛发展同步的。常用的计算机软件,都需要通过编译的方式,把使用高级计算机语言编写的代码(比如C代码)编译(compile)成计算机可以识别和执行的二进制代码。
比如,在Windows平台上,可使用Visual C++开发环境,编写程序并编译成可执行程序。这种方式下,我们使用PC平台上的Windows工具开发针对Windows本身的可执行程序,这种编译过程称为native compilation,中文可理解为本机编译。
然而,在进行嵌入式系统的开发时,运行程序的目标平台通常具有有限的存储空间和运算能力,比如常见的 ARM 平台,其一般的静态存储空间大概是16到32MB,而CPU的主频大概在100MHz到500MHz之间。
这种情况下,在ARM平台上进行本机编译就不太可能了,这是因为一般的编译工具链(compilation tool chain)需要很大的存储空间,并需要很强的CPU运算能力。
为了解决这个问题,交叉编译工具就应运而生了。通过交叉编译工具,我们就可以在CPU能力很强、存储空间足够的主机平台上(比如PC上)编译出针对其他平台的可执行程序。
要进行交叉编译,要在主机平台上安装对应的交叉编译工具链(cross compilation tool chain),然后用这个交叉编译工具链编译我们的源代码,最终生成可在目标平台上运行的代码。
参考资料来源:
百度百科-sdcc
百度百科-交叉编译器
手机工程模式顾名思义是指手机在工程测试状态下的模式,它是为移动基站负责维护系统的工程人员或手机工程师判断各种通讯参数而设计的。依据在工程模式中的相关数值,工程师们就无须借助大开型维护和控测设备,而准确地掌握基站情况,并且能提早处理可能出现的问题。但现在有些手机发烧友就喜欢象手机工程师一样,借助手机工程模式来研究手机基站位置、信号强弱、系统供应商代码等等内容,借以体现“老鸟”与“菜鸟”的区别,这恐怕也是最近的手机工程模式越来越受人瞩目的原因。其实开工程模式并不会对手机的接收信号有任何改善,而且不当的使用甚至会造成手机损害。因此在工程模式打开后,手机使用上同以前没有什么太大不同,只是会有些新鲜的画面。
诺基亚手机的工程模式功能强大是众所皆知,其名称为“Net monitor”,分组画面是铁锤和手机,该选项开启后即为常驻,不需要再输入任何密码。Net monitor在诺基亚51XX/6100中共有88个画面(6100软件版本在V5.0以后则为89个画面);6150则为89个画面;而8210则不编号为140的画面;3310则有133个。前19个画面称为Operator Net Monitor,以系统网络功能为主,后面的则被称为R&D Net Monitor,手机软硬件的资料为主。
如何打开诺基来手机的工程模式
目前能开启诺基亚工程软件很多,如著名的LogoManager就可以通过数据线或笔记本自带的红外线打开手机的工程模式,功能十分强大。执行Logo Manager的“tools”--“network monitor”命令即可,不过在模式上要选择“engineering”命令即可,这样才能完全发挥工程模式的效用。
Net monitor包含两种模式:资料显示模式(data display mode)和执行模式(execute mode)。进入资料模式的方法是在菜单选项中按上下键切换到Net monitor,按确认进入。在资料显示模式,可以在主画面中看到测试值,例如channel(频道)、Power Level、Cell ID等,利用上下键可轻松地转换测试项目(左上角的数字就是表示显示是第几个画面),而不必再回到菜单选项。执行模式是在工程模式中直接输入数字进入,是一次显示一种的形式,若要在执行模式下进行另一种的测试,则必须重新启动Net monitor选项,然后再进入该选项一次,如我们下面要讲到的输入18进入开关背景灯的画面等等。
工程模式常用指令
1、离开工程模式:输入00,确认。
2、关闭工程模式:输入241,确认(注意,这种方式将关闭工程模式直到你再次用特殊方法打开)。
3、显示在线帮助信息:在工程模式,按住*键不放,画面将切换到该画面栏位的缩写或代号,并有简短帮助信息供使用者查阅,此求助画面将停留到使用者再次长按*键始离开(注意51XX毓的V5.00~5.02版本无在线帮助信息)。
实战诺基亚手机工程模式
1、显示基站信号等常数值(画面1、2)
这是最基本的信息了,主要是手机当前正使用的基站和频道的信息,分为待机和通话两个画面。请对照在线帮助图和待机和通话的实际图来理解,不少数值在待机和通话状态下代表的信息并不相同。
CH显示频道编号,GSM900的范围是1-124,BC GSM1800的范围是512~885,如果运营商有开启跳频(Freq。Hopping),通话中频道编号前会用“H”来识别,并显示跳频所使用的频道编号。
RxL显示接收强度(单位:-dBm),范围从-110~0,因为该位置只能显示3位,显示100实际上是-100,一般低于-100手机已无信号。
TxPwr显示通话中手机的功率发射强度(Power Level),显示范围0~19。
TS时槽(Time Slot),TS=0~7,其中TS=0为BCCH所使用。
TA(Time Advamce)时间前置量,显示手机和基站间距离。该数值乘以500可换算为米,不过因受电波反射吸收等影响,TA值仅供参考用,TA值范围0~63(我们使用不同的手机在多个地点测试,得出的TA值基本吻合)。
RQ通话品质,0~7,数值越大,通话品质越差。
RLT Radio Link Timeout。如果是负的值,则显示0,最大值为64。当手机没有通话时,则会显示XX。
C1路径损失参数(Path Loss Criterion),供手机决定频道选定的参数,其计算比较复杂,在此略过。
C2小区重新选择参数(Cell Reselection Criterion)。
CHT - Channel Type,显示现在使用中频道类型,共有*AGCH、*SDCC和*TXX三种。
通话中CHT项变化:AGCH->SDCC->TFR(TEFR)->挂断电话->BCCH->CCCH。
开机CHT项变化:AGCH->SDCC->BCCH->CCCH。
BCCH-(Broadcast Control Channel)广播控制用频道。
CBCH-(Cell Broadcast Channel)小区广播频道。
SEAR-(Searching)手机正在搜寻网路讯号。
NSPS-(No Service &Power Save),无系统服务,手机处于省电模式。
TEFR为通话中语音编码速率,有HR、FR、EFR等,我们知道,在诺基亚手机中可能通过输入*3370#来打开或输入#3370#关闭加强型全速率方式,但到底我们的手机现在是在何种状态下工作,用此方法可以查明。
2、更多有关使用中基地台和频道的信息(画面3)。
BC-隔绝掉的cell数。
RelR-频道数。
QLF-当发送信号时=0。
3、邻近频道和可用及不可用的网路选择(画面4、5、6)。
SCH-目前手机所在的频道(CCCH)。
nCH-依接收强弱排序的邻近基地台频道编号n=1-8。
C1-该频道的C1值。
C2-该频道的C2值。
nN-正常可用cell为N,隔绝使用cell为B,n=1-8。
若在通话时,频道号码后会加上B以资识别,一般而言,临近基地台的资料最多显示6个而已。
4、画面7
L_Reg-目前注册使用中网络代码。
n_Pre-优先网络(preferred Networks),n=1-3。
n_For-曾尝试登录被禁用网络代码。
此画面资料是读取SIM卡上登载的资料,会随着该手机所插的SIM卡不同页有所变化。其中46001代表是中国联通,46000代表中国移动。
5、画面8
E:系统有无支持紧急求救电话:1为支持,0为不支持。
A:attach-detach程序:1为支持,0为不支持。
H:半速率频道:1为支持,0为不支持。
C:C2值广播:1为支持,0为不支持。
I:系统第七、八信息广播:1为支持,0为不支持。
B:系统广播:1为支持,0为不支持。
R:通讯重设(re-establishment):1为支持,0为不支持。
6、画面9
TMSI -临时行动用户识别码(Temporary Mobile Subscriber Identity)。TMSI的使用是为了保持IMSI的机密性(但是Sagem工程模式看的到)。所以只有该SIM卡第一次注册上网时,手机才会把IMSI传回系统,然后系统会配发一个TMSI给该SIM卡,以后SIM卡就改成用TMSI来跟系统表明身份。在Nokia Net Monitor中,TMSI值以十六进制表示。
T3212ctr/tim - 手机固定执行位置更新参数,第一个字段的数字要乘以6才是分钟,也就是说这字段的数字每6分钟跳一次,后面那个数字乘6就是固定执行位置更新的时间,也就是60分钟。
PaRP - 重复呼叫周期(Paging Repeat Period范围=2-9)。
DSF - 不明
AGD - Auto Gain Control(自动增益控制)。
手机接收到电波后必需将电波放大到一个固定的准位(Level)这样才能转换成讯号。当手机接收到的电波较强时放大率就比较低,当手机接收到的电波较弱时放大率就要高一点,如此才能将信号维持在一定的准位。
AFC- Auto Frequency Coutrol(自动频率控制)。
因为手机内的振荡器会因为环境(温度、湿度、磁场…)而受影响导致频率偏侈,所以就需要AFC来做微调。
Ch - 目前使用频道编号。
7、显示TMSI、AFC等信息(画面10)。
CC:460 NC01 LAC:33566 CH: 123 CID:15312 Serving Cell system info bits
CC -移动电话国家代码(MNC=Mobile Country Code)。
中国电信:00 中国联能:01
LAC-本地区域码(Location Area Code)。
CH -使用中频道编号。
CID-基地台编号(Cell ID),与扇区编号(sector ID)一超列出。
8、持续打开背景灯光
使用方法:进入Net monitor,输入18,再按确定键,打开或关闭灯光。
注意事项:该画面预设值为OFF,若开启成ON后,灯光将一直开直到使用者将状态改为OFF,此功能对于夜间的使用者很方便,尤其在车上的时候。
9、查看目前手机电池实际容量
其实Nokia手机只要开启工程模式,就可以让实际的电池容量无所遁形逃了,用这招可让你避免买到一些假冒伪劣电池,使用技巧相当简单,进入工程模式第20页,左下角显示的数字就是电池容量(mah)。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)