当前位置: 首页 > news >正文

免费人才招聘网站网络营销就业方向和前景

免费人才招聘网站,网络营销就业方向和前景,商业空间设计的特点,wordpress 用ip访问不了1.COFF格式要谈CMD文件#xff0c;首先不可避免的要谈下COFF格式#xff0c;COFF格式是通用目标文件格式(Common Object FileFormat)的缩写#xff0c;它是一种流行的二进制可执行文件格式#xff0c;在DSP里二进制可执行文件包括库文件(.lib)、目标文件(.obj)和最终可执行…1.COFF格式要谈CMD文件首先不可避免的要谈下COFF格式COFF格式是通用目标文件格式(Common Object FileFormat)的缩写它是一种流行的二进制可执行文件格式在DSP里二进制可执行文件包括库文件(.lib)、目标文件(.obj)和最终可执行文件(.out)。详细的COFF格式文件包括段头、可执行代码、初始化数据、可重定位信息、行号入口、符号表、字符串。对于DSP的C语言编程我们只需要了解定义段和给段分配空间即可。采用COFF格式更利于我们对其进行模块化编程我们可以自由的把哪些段分配到哪些空间。2.Section(1)其次在编写CMD文件得时候要碰到SectionS命令SectionS命令的英文理解就有区域的意思我们利用SectionS来将目标文件的代码放到指定的区域中。SectionS目标文件中最小的单位我们称之为块一个块就是最终在存储器映像中占据连续空间的一段代码或者数据。COFF文件格式默认有三个块.text 存放可执行代码.data 存放已初始化数据.bss 为未初始化数据留下的保留空间。(2)汇编器对块的处理和设置未初始化块的设置.bss 变量存放空间.usect 用户自定义的未初始化段初始化块的设置.text 汇编指令代码.data 常数数据(比如对变量的初始化数据).sect 用户自定义的已初始化段.asect 类似于.sect多了绝对地址定位功能一般不用(3)C语言对块得的设置和处理未初始化块(data).bss 存放全局和静态变量.ebss 长调用的.bss(超过了64K地址限制).stack 存放C语言的栈.sysmem 存放C语言的堆.esysmem 长调用的.sysmem(超过了64K地址限制)初始化块.text 可执行代码和常数(program).switch switch语句产生的常数表格(program/低64K数据空间).pinit Tables for global constructors (C)(program).cinit 用来存放对全局和静态变量的初始化常数值(program).const 全局和静态的const变量初始化值和字符串常数(data).econst 长.const(可定位到任何地方)(data)(4)C语言自定义块#pragma DATA_SECTION(函数名或者全局变量名“用户自定义在数据空间的段名”)#pragma CODE_SECTION(函数名或者全局变量名“用户自定义在程序空间的段名”)必须注意不能在函数体内声明必须在定义和使用前声明。#pragma可以阻止对未调用的函数的优化(优化我也不太理解)。3.2812的CMD文件(1)在CMD文件中有两个伪指令MEMORY和SECTIONS其中SECTIONS的用法在上面已经有了介绍就是将生成的代码或者数据分配到指定的存储器的映射空间去。哪里是映射空间呢这个就是由MEMORY这个伪指令来定义的它的作用就是对整个存储器进行分区然后给每个存储器进行命名DSP只认物理地址(在我的第一篇日志里已经详细阐述了)。下面先写下这两个伪指令的语法格式MEMORY {PAGE 0: name1[(attr)]originconstant,lengthconstant;PAGE n: name1[(attr)]originconstant,lengthconstant;}PAGEn中页号的最大值是255每个PAGE代表一个完全独立得地址空间通常n0为数据空间n1为程序空间name是对存储区间命名attr规定了存储器得属性R-读W-写一般我们不写的  origin,起始地址length该存储区间的大小。SECTIONS{Name:[property,property,…]Name:[property,property,…]Name:[property,property,…]}Name源程序中的段名。如.text,Property段的属性参数。一个段的属性参数包括下列五种(1)Load allocation由它定义将输出段加载到存储器中的什么位置。语法load:allocation (allocation是将逻辑段定位的地址说明)例如 .text: load0x1000 ;将输出段定位到一个特定的地址.text: loadROM ;将输出段定位到命名为ROM的存储区.text: align0x80 ;关键词align规定输出段.text定位到从地址边界0x80开始.text: block(128) ;关键词bolck规定段必须在两个地址边界之内如果段太;大就从一个地址边界开始.text: PAGE0 ;将输出段定位到PAGE0如果输出段只定位一个位置帽可省去关键字load。如.text: ROM如果要用到一个以上参数可以将它们排成一行。如.text: ROM align 16 PAGE 2或.text: load(ROM align(16) PAGE(2))(地址边界是2的N次方幂的地址如地址边界定为16则其地址为xxx0h。)(2)Run allocation由它定义输出段在存储器的什么位置开始运行。语法runallocation或runallocation链接器为每个输出段在目标存储器中分配两个地址加载地址和执行地址。通常这两个地址是相同的。但如要先将程序加载到ROM然后在RAM中以较快的速度运行。则可两次定位如.fir: loadROM,runRAM(3)Input sections由它定义哪些输入段组成输出段。语法{input_sections}.text: {*(.text)}这样就把所有的.text段链接成.text段输出。也可以明确的用文件名和段名来确定输入段.text:{F1.obj(.text,sect) ;链接F1.obj的.text、.sect段F2.obj(sect) ;F3.obj ;链接f3.obj的所有段}(4)Section type用它为输出段定义特殊形式的标志语法TypeCOPY、TypeDSECT、TypeNOLOAD(5)Fill value当初始化段中存在未初始化的存储区间时对其填充一指定值。语法fill:value 或name:…{…}value4.2812的CMD文件的编写下面就来谈谈我对2812在写CMD文件的时候的一点理解不足的地方希望各位看官拨冗指正 。(1)片内存储器分区MEMORY先翻开相关芯片的存储空间的资料然后分配一下你得程序存储空间和数据存储空间即PAGE0和PAGE1,程序存储空间里通常放XINTF的ZONE0,1,2,6,7FLASHA-J,OPT,H0,bootROM,其中BOOTROM和XINTF得ZONE7是复用得在不同得模式下选取不同的方式MP/MC0----BOOTROM,MP/MC1----XINTFZONE7在片内数据空间上定义各个存储器这是也可以翻开你的书本查下每章开头一般都有这一章所涉及的所以的寄存器的地址然后根据这些地址分配一下存储的单元的起始地址和空间的大小。(2)SECTIONGS分块这里举一个例子阐述一下分块的方法例如我们在数据存储空间定义了SYSTEM块主要就是给系统的时钟、看门狗、锁存器等分的一个空间这个空间的大小是0x0020H,也就是10进制得32个字节单元为什么要分32个字节单元呢在书上我们可以查的系统得这一部分所对应的寄存器的名称和寄存器的字节数如下Reserved:10;HISPCP:1;LOSPCP:1;PCLCR:1;Reserved:1;LPMCR0:1;LPMCR1:1;Reserved:1;PLLCR:1;SCSR:1;WDCNTR:1;Reserved:1;WDKEY:1;Reserved:3;WDCR:1;Reserved:6;计算一下整个的存储器空间的大小是1011111111111131632.这就是为什么是32个字节的原因。记住此时这一块的名字是SYSTEM(当然你也可以另行定义)。在SECTIONS中我们定义输出段的名字是SysCtrlRegsFile,其指向的就是SYSTEM.即SysCtrlRegsFile:SYSTEM,PAGE0然后我们在自己的头文件中定义结构体和联合体的时候例如定义了一个SYSTEM_REGS的结构体里面包含了系统的控制寄存器的联合体或者结合体可以这么写struct SYSTEM_REGS{Unit32 Reserved:10;union HISPCP_REGSHISPCP;union LOSPCP_REGSLOSPCP;union PCLKER_REGSPCLKER;Unit32 Reserved:1;union LPMCR0_REGS LPMCR0;union  LPMCR1_REGS LPMCR1;Unit32 Reserved:1;union PLLCR_REGS PLLCR;union SCSR_REGS SCSR; 貌似这个是不用定义联合体的Unit32 SCSR:1;union WDCNTR_REGS WDCNTR;Unit32 Reserved:1;union WDKEY_REGS WDKEY;Unit32 Reserved:3;union WDCR_REGS WDCR;Unit32 Reserved:6;}SysCtrlRegsFile;这里面得联合体都有其自己的定义例如PLLCR_REGSstruct PLLCR_BITS{Unit16 DIV:4;Unit16 Reserved:12;};union PLLCR_REGS{Unit16 all;struct PLLCR_BITS bit;};这样我们要对PLLCR寄存器操作得时候就只需这么写SysCtrlRegsFile.PLLCR.all0xXXXX;或者SysCtrlRegsFile.PLLCR.bit.DIV0xXXXX;bit是结构体的一个变量  相信C语言得结构体和联合体(也叫共用体)大家都学得不比偶差吧。对其操作过程就是自动得找到了SysCtrlRegsFile对应得那片空间0x00007010-0X0x702F然后PLLCR就是就是里面的第18个空间即0x00007021相信这么理解大家都应该明白了撒。所有的寄存器都是这样写得哦。  。成功源于共享
http://www.huolong8.cn/news/57026/

相关文章:

  • 网站文案优化公需道德与能力建设培训网站
  • 綦江建设银行网站网站推广一般在哪个网做
  • 做视频网站好做吗清远医疗网站建设
  • 网站软文伪原创网站建设 三合一
  • 南京哪公司建设网站长春今天最新通告
  • 如何做免费网站如何申请商业服务器
  • 天津建设网站官网wordpress主题 心理医生
  • 网站开发用什么好建站最便宜的平台
  • 东营聊城网站建设怎么用网吧电脑做网站服务器
  • 做论坛网站 备案看摄影作品的网站
  • 品牌商城网站制作公众号开发需要提供什么
  • 国外metro风格网站模板广元市剑阁县建设局网站
  • 为什么我做的视频网站播放不了郑州网站建设企起
  • 湖北手机网站建设在线短链接生成网址
  • 社团网站建设的功能定位网站自身维护
  • 做跨国婚恋网站赚钱吗凡科代理平台
  • 哪家成都公司做网站江门h5模板建站
  • php商业网站制作90设计网站免费素材
  • 广告传媒公司名字大全app关键词排名优化
  • 做微信首图的网站建设教育协会培训网站
  • 做网站买个域名多少钱做网站的网络公司
  • 电子商务网站建设 教材长沙公司网站高端网站建设
  • 做视频点播网站网站 地区加关键词
  • 创建自己的网站有什么用广告去哪个网站做
  • 网站设计的基本过程广州定制网站建设
  • 扁平风格网站模板吉林省吉林市有几个区
  • 网站建设方案多少钱公司网站建设找谁做
  • 如何创建自己网站怎样把已经有的网站做推广
  • 企业网站功能是什么中国互联网站建设中心
  • 制作公司网站公司wordpress 小视频主题