gccms日志word范文模板 27页Word文档格式.docx

上传人:b****6 文档编号:16809761 上传时间:2022-11-26 格式:DOCX 页数:22 大小:25.62KB
下载 相关 举报
gccms日志word范文模板 27页Word文档格式.docx_第1页
第1页 / 共22页
gccms日志word范文模板 27页Word文档格式.docx_第2页
第2页 / 共22页
gccms日志word范文模板 27页Word文档格式.docx_第3页
第3页 / 共22页
gccms日志word范文模板 27页Word文档格式.docx_第4页
第4页 / 共22页
gccms日志word范文模板 27页Word文档格式.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

gccms日志word范文模板 27页Word文档格式.docx

《gccms日志word范文模板 27页Word文档格式.docx》由会员分享,可在线阅读,更多相关《gccms日志word范文模板 27页Word文档格式.docx(22页珍藏版)》请在冰豆网上搜索。

gccms日志word范文模板 27页Word文档格式.docx

-mwarn-passed-structs

如果某个函数把结构当做参数或结果传递,GCC发出警告.随着C语言的发展,人们已经改变了传递结构的约定,它往往导致移植问题.默认情况下,GCC不会发出警告.

下面的选项用于IBMRS6000:

-mfp-in-toc

-mno-fp-in-toc

控制是否把浮点常量放到内容表(TOC)中,内容表存放所有的全局变量和函数地址.默认情况下,GCC把浮点常量放到这里;

如果TOC溢出,`-mno-fp-in-toc'

选项能够减少TOC的大小,这样就可以避免溢出.

下面的`-m'

选项用于IBMRTPC:

-min-line-mul

对于整数乘法使用嵌入代码.这是默认选项.

-mcall-lib-mul

对于整数乘法使用lmul$$.

-mfull-fp-blocks

生成全尺寸浮点数据块,包括IBM建议的最少数量的活动空间(scratchspace).这是默认选项.

-mminimum-fp-blocks

不要在浮点数据块中包括额外的活动空间.这样就产生较小但是略慢的可执行程序,因为活动空间必须动态分配.-mfp-arg-in-fpregs

采用不兼容IBM调用约定的调用序列,通过浮点寄存器传送浮点参数.注意,如果指定了这个选项,varargs.h和stdargs.h将无法支持浮点单元.

-mfp-arg-in-gregs

使用正常的调用约定处理浮点参数.这是默认选项.

-mhc-struct-return

通过内存返回大于一个字的结构,而不是通过寄存器.用于兼容MetaWareHighC(hc)编译器.使用`-fpcc-struct-return'

选项可以兼容PortableC编译器(pcc).

-mnohc-struct-return

如果可以,通过寄存器返回某些大于一个字的结构.这是默认选项.如果打算兼容IBM提供的编译器,请使用`-fpcc-struct-return'

或`-mhc-struct-return'

选项.

选项用于MIPS家族的计算机:

-mcpu=cpu-type

生成指令的时候,假设默认的机器类型是cpu-type.默认情况下的cpu-type是default,GCC将选取任何机型上都是最长周期时间的指令,这样才能使代码在所有的MIPS处理器上以合理的速度运行.cpu-type的其他选择是r201X,r3000,r4000,和r6000.虽然选定某个cpu-type后,GCC将针对选定的芯片安排对应的工作,但是如果不指定?

?

-mips2或-mips3选项,编译器不会输出任何不符合MIPSISA(instructionsetarchitecture)一级的代码.

-mips2

输出MIPSISA二级指令(可能的扩展,如平方根指令).-mcpu=r4000或-mcpu=r6000选项必须和-mips2联用.

-mips3

输出MIPSISA三级指令(64位指令).-mcpu=r4000选项必须和-mips2联用.(译注:

疑为-mips3)

-mint64

-mlong64

-mlonglong128

这些选项目前不起作用.

-mmips-as

产生用于MIPS汇编器的代码,同时使用mips-tfile添加普通的调试信息.对于大多数平台这是默认选项,除了OSF/1参考平台,它使用OSF/rose目标格式.如果打开了任一个-ggdb,-gstabs,或-gstabs+选项开关,mips-tfile程序就把stab封装在MIPSECOFF里面.

-mgas

产生用于GNU汇编器的代码.在OSF/1参考平台上这是默认选项,它使用OSF/rose目标格式.

-mrnames

-mno-rnames

-mrnames开关选项告诉输出代码使用MIPS软件名称说明寄存器,而不是硬件名称(就是说,用a0代替$4).GNU汇编器不支持-mrnames选项,而MIPS汇编器则运行MIPSC预处理器处理源文件.-mno-rnames是默认选项.

-mno-gpopt

-mgpopt开关选项要求在正文段中把所有的数据声明写到指令前面,使各种MIPS汇编器对短类型全局或静态数据项(shortglobalorstaticdataitems)输出单字内存访问而不是双字内存访问.当打开编译优化时,这是默认功能.

-mstats

-mno-stats

每次处理完非嵌入函数(non-inlinefunction)后,-mstats开关选项使编译器向标准错误文件输出一行关于程序的统计资料(保存的寄存器数目,堆栈大小,等等).

-mmemcpy

-mno-memcpy

-mmemcpy开关选项使所有的块移动操作调用适当的string函数(memcpy或bcopy),而不是生成嵌入代码.

-mmips-tfile

-mno-mips-tfile

当MIPS汇编器生成mips-tfile文件(用于帮助调试)后,-mno-mips-tfile开关选项阻止编译器使用mips-tfile后期处理(postprocess)目标文件.不运行mips-tfile就没有调试器关注的局部变量.另外,stage2和stage3目标文件将把临时文件名传递给汇编器,嵌在目标文件中,这意味着不比较目标文件是否相同.

-msoft-float

输出包含浮点库调用.警告:

所需库不是GNUCC的一部分.一般说来使用该机型本地C编译器的相应部件,但是不能直接用于交叉编译,你必须自己安排,提供交叉编译适用的库函数.

-mhard-float

输出包含浮点指令.如果编译器没有被改动,这就是默认选项.

-mfp64

编译器认为状态字的FR置位(on),也就是说存在3264-bit浮点寄存器,而不是3232-bit浮点寄存器.同时必须打开-mcpu=r4000和-mips3开关.

-mfp32

认为存在3232-bit浮点寄存器.这是默认选项.

-mabicalls

-mno-abicalls

输出(或不输出).abicalls,.cpload,和.cprestore伪指令,某些SystemV.4版本用于位置无关代码.

-mhalf-pic

-mno-half-pic

-mhalf-pic开关选项要求把外部引用的指针放到数据段,并且载入内存,而不放到正文段.该选项目前不起作用.

-Gnum

把小于等于num字节的全局或静态数据放到小的数据段或bss段,而不是普通的数据段或bss段.这样汇编器可以输出基于全局指针(gp或$28),的单字内存访问指令而非普通的双字指令.默认情况下,用MIPS汇编器时num是8,而GNU汇编器则为0.另外,-Gnum选项也被传递给汇编器和连接器.所有的模块必须在相同的-Gnum值下编译.

汇编用户汇编文件(带有`.s'

后缀)时,告诉MIPS汇编器不要运行预处理器.

选项用于Intel80386族计算机:

-m486

-mno-486

控制是否生成对486优化的代码.

在函数把浮点返回值放在80387寄存器栈的机器上,即使设置了`-msoft-float'

选项,也可能会发出一些浮点操作码.

-mno-fp-ret-in-387

不用FPU寄存器返回函数值.

通常函数调用约定把float和double的返回值放在FPU寄存器中,即使不存在FPU.这种作法的理念是操作系统应该仿真出FPU.

而`-mno-fp-ret-in-387'

选项使浮点值通过普通的CPU寄存器返回.

选项用于HPPA族计算机:

-mpa-risc-1-0

生成PA1.0处理器的目标码.

-mpa-risc-1-1

生成PA1.1处理器的目标码.

-mkernel

生成适用于内核的目标码.特别要避免add指令,它有一个参数是DP寄存器;

用addil代替add指令.这样可以避免HP-UX连接器的某个严重bug.

-mshared-libs

生成能够连接HP-UX共享库的目标码.该选项还没有实现全部功能,对PA目标默认为关闭.使用这个选项会导致编译器生成错误的目标码.

-mno-shared-libs

不生成连接HP-UX共享库的目标码.这是PA目标的默认选项.

-mlong-calls

生成的目标码允许同一个源文件中的函数调用,调用点和被调函数的距离可以超过256K之远.不需要打开这个开关选项,除非连接器给出``branchoutofrangeerrors``这样的错误.

-mdisable-fpregs

防止任何情况下使用浮点寄存器.编译内核需要这个选项,内核切换浮点寄存器的执行环境速度非常缓慢.如果打开了这个开关选项同时试图浮点操作,编译将失败.

-mdisable-indexing

防止编译器使用索引地址模式(indexingaddressmode).这样在MACH上编译MIG生成的代码时,可以避免一些非常晦涩的问题.

-mtrailing-colon

在标记定义(labeldefinition)的末尾添加一个冒号(用于ELF汇编器).

选项用于Intel80960族计算机:

-mcpu-type

默认机器类型为cpu-type,使编译器产生对应的指令,地址模式和内存对齐.默认的cpu-type是kb;

其他选择有ka,mc,ca,cf,sa,和sb.

-mnumerics

-mnumerics开关选项指出处理器不支持浮点指令.-msoft-float开关选项指出不应该认为机器支持浮点操作.

-mleaf-procedures

-mno-leaf-procedures

企图(或防止)改变叶过程(leafprocedure),使其可被bal指令以及call指令调用.对于直接函数调用,如果bal指令能够被汇编器或连接器替换,这可以产生更有效的代码,但是其他情况下产生较低效的代码,例如通过函数指针调用函数,或使用了不支持这种优化的连接器.

-mtail-call

-mno-tail-call

执行(或不执行)更多的尝试(除过编译器那些机器无关部分),优化进入分支的尾递归(tail-recursive)调用.你可能不需要这个,因为检测什么地方无效没有全部完成.默认开关是-mno-tail-call.

-mcomplex-addr

-mno-complex-addr

认为(或不认为)在当前的i960设备上,值得使用复合地址模式(complexaddressingmode).复合地址模式可能不值得用到K系列,但是一定值得用在C系列.目前除了CB和CC处理器,其他处理器上-mcomplex-addr是默认选项.

-mcode-align

-mno-code-align

把目标码对齐到8字节边界上(或者不必),这样读取会快一些.目前只对C系列默认打开.

-mic-compat

-mic2.0-compat

-mic3.0-compat

兼容iC960v2.0或v3.0.

-masm-compat

-mintel-asm

兼容iC960汇编器.

-mstrict-align

-mno-strict-align

不允许(或允许)边界不对齐的访问.

篇二:

MT7681学习日志

目录

前言:

..............................................................................................................................................1

第一部分:

环境搭建.......................................................................................................................1

第二部分:

程序烧写.......................................................................................................................2

第三部分:

硬件分析.........................................................................................................................2

第四部分:

程序编写.......................................................................................................................3

一、GPIO口应用:

..........................................................................................................3

二、定时器的使用...........................................................................................................3

本学习日志为在MT7681学习过程中所遇到的困难,相关资料上未清楚表达的部分或错误部分进行记录,和每一个步骤所需资料名称,以及为日后方便时用MT7681模块所书写的一个学习日志

环境搭建

环境搭建除本身自带文档《MT7681环境搭建指南.pdf》《MT7681开发简明手册.pdf》上的内容以外需要注意文档的错误部分:

修改错误,应该修改为自己的安装路径,否则编译时会提示

/cygdrive/c/Andestech/BSPv310/toolchains/nds32le-elf-newlib-v2j/bin/nds32le-elf-gcc:

Nosuchfileordirectory,示例如下:

C:

/Andestech/AndeSight201MCU/toolchains/nds32le-elf-newlib-v2j/bin

程序烧写

程序烧写部分应参考《如何用串口烧写新程序.pdf》《MT7681开发简明手册.pdf》

接线方面,开发板的rx接usb端的tx口,开发板tx接usb的rx口,开发板的rx口需在系统启动后接上,否则系统不会启动。

AT#Reboot命令不能使用:

1、rx口是否已经在系统启动后接上

2、确认rx口接上后可能由于系统指令集未启动

解决方案:

1、接rx口

2、重新插拔电源,快速接通rx口,在系统处于如图状态时使用命令AT#UpdateFW,

若已经启动系统,请重复2过程

3、编写程序过程中优先启动指令集,将此部分放置于死循环之前:

硬件分析

硬件部分应参考《Linklt_Connect_7681_Pin_Out_Diagram_v1_0.pdf》《MT7681模块使用指导.pdf》《MT7681_Data_Sheet_v0_0.pdf》已经足以了解硬件方面的各种需求

程序编写

编写程序使用到的文档《MT7681程序流程和函数讲解.pdf》

《MediaTek_LinkIt_Connect_7681_API_Reference_v1_0.pdf》注意更新文档,新的文档会比旧文档多出函数以及很多示例和说明

可参考文件夹:

mt7681sdkGPIO操作实例讲解-weixinal的专栏-博客频道-CSDN.NET_files

点灯实验:

IoT_gpio_batch_modify_mode(0x04);

//00100设置输入输出状态就可以了,代码如下IoT_gpio_output(2,1);

//GPIO2输出高电平

IoT_gpio_batch_modify_mode内数值参考表格:

读取

mt7681上GPIO4的状态:

在需要读取的程序代码行插入以下函数:

UINT8gpio4_status,out_in;

//定义下面函数需要的变量

IoT_gpio_batch_modify_mode(0);

//00000全部输入状态

IoT_gpio_read(4,&

gpio4_status,&

out_in);

//读取GPIO4上的电平和输入输出状态

if(gpio4_status==1)//如果读到的是高电平则输入为1

{

Printf_High("

input=1\n"

);

}

else

input=0\n"

cyc\n"

解释:

本函数不会改变端口的输入输出状态,读取该GPIO上的值。

注意事项,最好在程序一开始就将GPIO设置为输入状态,需要读取的时候再调用此函数一次,判断gpio4_status的状态。

二、定时器的使用

手册上写明有timer0和timer1定时器,但是在v1.2中只有timer0;

可能在后续版本中会提供timer1功能。

定时器初始化中后三个参数具体意义不确定。

对定时器进行初始化:

cnmTimerInitTimer(&

IoTCustTimer.custTimer0,CustTimer0TimeoutAction,0,

0);

//Initializesatimer

启动定时器:

cnmTimerStartTimer(&

IoTCustTimer.custTimer0,3000);

//第二个参数为时间(单位:

ms)

停止定时器:

cnmTimerStopTimer(&

IoTCustTimer.custTimer0);

定时器的使用:

使用定时器需要将定时内容写入CustTimer0TimeoutAction函数内:

//Thisfunctionfromiot_coustom.cline218

VOIDCustTimer0TimeoutAction(UINT_32param,UINT_32param2){

#if(UARTRX_TO_AIR_AUTO==1)

staticuint16T1=0;

IoT_gpio_batch_modify_mode(0x01);

Printf_High("

CustTimer1TimeoutAction:

[%d]processing...\n"

T1++);

if(T1<

3){if(0==T1){IoT_gpio_output(0,0);

input=1\n\n"

}elseif(1==T1){}else{}IoT_gpio_output(0,0);

T1=0;

IoT_gpio_output(0,1);

IoT_Cust_uart2wifi_change_mode_handler();

#endifPrintf_High("

CustTimer1Start,willtimeoutafter3second...\n"

cnmTimerStartTimer(&

IoTCustTimer.custTimer0,3000);

}else{Printf_High("

CustTimer1Stop\n"

cnmTimerStopTimer(&

}//cnmTimerStartTimer(&

IoTCustTimer.custTimer0,100);

}

需解决问题:

定时器除了在CustTimer0TimeoutAction函数内有效以外其他地方使用办法(201X/1/22)

篇三:

项目日志

宿主机开发环境:

ubuntu12.04

目标机:

飞凌6410(arm11)

12月5日

*环境搭建设置交叉编译器

1.设置整个项目在/opt目录下进行,修改权限

sudochownjun/opt

sudochgrpjun/opt

2.使用厂商提供的交叉编译器:

arm-linux-gcc-4.3.2.tgz

cd/opt

tarxvzfarm-linux-gcc-4.3.2.tgz

3.修改环境变量

sudovi/etc/environment

添加/opt/usr/local/arm/4.3.2/bin:

之后为:

PATH="

/opt/usr/local/arm/4.3.2/bin:

/usr/local/sbin:

/usr/local/bin:

/usr/sbin:

/usr/bin:

sbin:

/bin:

/usr/games"

保存退出,使之生效

./etc/environment

4.检查交叉编译器

arm-linux-gcc-v

*配置编译uboot

1.使用厂商提供的uboot:

uboot1.1.6-V5.50-201X-09-19.tar.gz

2.解压:

tarxvzfuboot1.1.6-V5.50-201X-0

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 研究生入学考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1