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

一叶子电子商务网站建设策划书制作一个网站的成本

一叶子电子商务网站建设策划书,制作一个网站的成本,深圳大兴汽车集团网站建设,中英文网站域名的区别DSP2812的FLASH虽然很大#xff0c;但是程序在这个FLASH区域运行的速度与在RAM中运行速度相比要慢很多#xff0c;为此通常的做法是将需要快速运行的程序copy到ram中运行#xff0c;通常将中断子程序以及中断中调用的其他子程序copy到RAM中运行#xff0c;对于一些不需要太…   DSP2812的FLASH虽然很大但是程序在这个FLASH区域运行的速度与在RAM中运行速度相比要慢很多为此通常的做法是将需要快速运行的程序copy到ram中运行通常将中断子程序以及中断中调用的其他子程序copy到RAM中运行对于一些不需要太快速度处理的程序可以不管让其在FLASH中运行。          将FLASH中程序copy到RAM中的运行的RAM需要连续地址区域而最大的连续区域仅8k对于一些大软件来说就不够用了扩充可用RAM区间分两个阶段通常例程中cmd文件中的分配并未将单个8k都用起来所以第一个阶段是将可用最大的8k RAM连起来作为一个连续区间如下   RAML0 : origin 0x008000, length 0x002000 /* on-chip RAM block L0 */   同时将与其相邻的另外段RAML01屏蔽如下 // RAML1 : origin 0x00A000, length 0x000000 /* on-chip RAM block L1 */        通过以上修改可以将RAML0调整到最大的8k这样对应着可copy子程序的ramfuncs就是8k ramfuncs : LOAD FLASHD,       RUN RAML0,       LOAD_START(_RamfuncsLoadStart),      LOAD_END(_RamfuncsLoadEnd),      RUN_START(_RamfuncsRunStart),      PAGE 0          第二阶段是将RAMH0的8k也作为可拷贝程序的区间有一些采用了将.test拆分的方法(http://blog.sina.com.cn/s/blog_c82fc4020102wdms.html)个人觉得太麻烦实际上可以再定义一个ramfuncs2采用和 ramfuncs同样的定义方式将RUN RAML0改为RUN RAMH0岂不是更简单 ramfuncs :  LOAD FLASHD,       RUN RAML0,       LOAD_START(_RamfuncsLoadStart),      LOAD_END(_RamfuncsLoadEnd),      RUN_START(_RamfuncsRunStart),      PAGE 0ramfuncs2 : LOAD FLASHB, /* 与RAMH0同属PAGE1区 */      RUN RAMH0,       LOAD_START(_RamfuncsLoadStart2),      LOAD_END(_RamfuncsLoadEnd2),      RUN_START(_RamfuncsRunStart2),      PAGE 1        改成上面的代码后会首先报错找不到RamfuncsLoadStart2、_RamfuncsLoadEnd2和_RamfuncsRunStart2仍采用复制 的方法首先找到_RamfuncsLoadStart定义的位置(DSP281x_GlobalPrototypes.h)改后如下     extern Uint16 RamfuncsLoadStart;    extern Uint16 RamfuncsLoadEnd;    extern Uint16 RamfuncsRunStart;     //以下为新增加    extern Uint16 RamfuncsLoadStart2;    extern Uint16 RamfuncsLoadEnd2;    extern Uint16 RamfuncsRunStart2;   定义好之后就是在主程序中将程序从FLASH中copy到RAM的部分再复制一次如     InitSysCtrl();                   MemCopy(RamfuncsLoadStart, RamfuncsLoadEnd, RamfuncsRunStart);//将定义在ramfuncs段中的数据从FLASH拷贝到RAM中     MemCopy(RamfuncsLoadStart2, RamfuncsLoadEnd2, RamfuncsRunStart2);//将定义在ramfuncs2段中的数据从FLASH 拷贝到RAM中(新增加)     InitFlash();        经过以上更改后就可以将子程序放到ramfuncs2中了如下     #pragma CODE_SECTION(delay, ramfuncs);    #pragma CODE_SECTION(delay3, ramfuncs);    #pragma CODE_SECTION(SQRT_FPGA, ramfuncs);     #pragma CODE_SECTION(CTR_PRAM_CAL, ramfuncs2); //ramfuncs2为新增加数据段    #pragma CODE_SECTION(CTR_PRAM_CAL3, ramfuncs2);    #pragma CODE_SECTION(CTR_PRAM_CAL4, ramfuncs2);   经过以上的两个步骤可以充分利用DSP2812中总共18k RAM中的16k剩下的2k可用于存储全局变量或者局部变量完整的 cmd文件如下(可直接复制替换) MEMORY{PAGE 0: /* Program Memory *//* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE1 for data allocation */ ZONE0 : origin 0x002000, length 0x002000 /* XINTF zone 0 */ZONE1 : origin 0x004000, length 0x002000 /* XINTF zone 1 */RAML0 : origin 0x008000, length 0x002000 /* on-chip RAM block L0 */ //0x001000 ZONE2 : origin 0x080000, length 0x080000 /* XINTF zone 2 */ZONE6 : origin 0x100000, length 0x080000 /* XINTF zone 6 */OTP : origin 0x3D7800, length 0x000800 /* on-chip OTP */FLASHJ : origin 0x3D8000, length 0x002000 /* on-chip FLASH */FLASHI : origin 0x3DA000, length 0x002000 /* on-chip FLASH */FLASHH : origin 0x3DC000, length 0x004000 /* on-chip FLASH */FLASHG : origin 0x3E0000, length 0x004000 /* on-chip FLASH */FLASHF : origin 0x3E4000, length 0x004000 /* on-chip FLASH */FLASHE : origin 0x3E8000, length 0x004000 /* on-chip FLASH */FLASHD : origin 0x3EC000, length 0x004000 /* on-chip FLASH */FLASHC : origin 0x3F0000, length 0x004000 /* on-chip FLASH */FLASHA : origin 0x3F6000, length 0x001F80 /* on-chip FLASH */CSM_RSVD : origin 0x3F7F80, length 0x000076 /* Part of FLASHA. Program with all 0x0000 when CSM is in use. */BEGIN : origin 0x3F7FF6, length 0x000002 /* Part of FLASHA. Used for boot to Flash bootloader mode. */CSM_PWL : origin 0x3F7FF8, length 0x000008 /* Part of FLASHA. CSM password locations in FLASHA */ /* ZONE7 : origin 0x3FC000, length 0x003FC0 /* XINTF zone 7 available if MP/MCn1 */ ROM : origin 0x3FF000, length 0x000FC0 /* Boot ROM available if MP/MCn0 */RESET : origin 0x3FFFC0, length 0x000002 /* part of boot ROM (MP/MCn0) or XINTF zone 7 (MP/MCn1) */VECTORS : origin 0x3FFFC2, length 0x00003E /* part of boot ROM (MP/MCn0) or XINTF zone 7 (MP/MCn1) */ PAGE 1 : /* Data Memory *//* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE0 for program allocation *//* Registers remain on PAGE1 */ RAMM0 : origin 0x000000, length 0x000400 /* on-chip RAM block M0 */RAMM1 : origin 0x000400, length 0x000400 /* on-chip RAM block M1 */// RAML1 : origin 0x00A000, length 0x000000 /* on-chip RAM block L1 */FLASHB : origin 0x3F4000, length 0x002000 /* on-chip FLASH */RAMH0 : origin 0x3F8000, length 0x002000 /* on-chip RAM block H0 */} /* Allocate sections to memory blocks.Note:codestart user defined section in DSP28_CodeStartBranch.asm used to redirect code execution when booting to flashramfuncs user defined section to store functions that will be copied from Flash into RAM*/ SECTIONS{ /* Allocate program areas: */.cinit : FLASHC PAGE 0//FLASHA.pinit : FLASHC, PAGE 0//FLASHA.text : FLASHC PAGE 0//FLASHAcodestart : BEGIN PAGE 0ramfuncs : LOAD FLASHD, RUN RAML0, LOAD_START(_RamfuncsLoadStart),LOAD_END(_RamfuncsLoadEnd),RUN_START(_RamfuncsRunStart),PAGE 0ramfuncs2 : LOAD FLASHB, RUN RAMH0, LOAD_START(_RamfuncsLoadStart2),LOAD_END(_RamfuncsLoadEnd2),RUN_START(_RamfuncsRunStart2),PAGE 1 csmpasswds : CSM_PWL PAGE 0csm_rsvd : CSM_RSVD PAGE 0 /* Allocate uninitalized data sections: */.stack : RAMM0 PAGE 1.ebss : RAMM1 PAGE 1.esysmem : RAMM1 PAGE 1 /* Initalized sections go in Flash *//* For SDFlash to program these, they must be allocated to page 0 */.econst : FLASHC PAGE 0 //FLASHA.switch : FLASHC PAGE 0 //FLASHA /* Allocate IQ math areas: */IQmath : FLASHA PAGE 0 //FLASHC /* Math Code */IQmathTables : ROM PAGE 0, TYPE NOLOAD /* Math Tables In ROM */ /* .reset is a standard section used by the compiler. It contains the */ /* the address of the start of _c_int00 for C Code. /*/* When using the boot ROM this section and the CPU vector *//* table is not needed. Thus the default type is set here to *//* DSECT */ .reset : RESET, PAGE 0, TYPE DSECTvectors : VECTORS PAGE 0, TYPE DSECT }         经过以上改动后新扩展的RAM区实测可用        一些理解LOAD_START(_RamfuncsLoadStart)表示告诉编译器将这一段编译之后产生的起始地址存入RamfuncsLoadStart变量中其他的变量也类似这样在主程序运行时的MemCopy()才会找到相应的数值也就是说LOAD_START(_RamfuncsLoadStart)这句是赋值功能。 转载于:https://www.cnblogs.com/liwei-chengdu/p/9407358.html
http://www.hkea.cn/news/14308355/

相关文章:

  • 辽宁网站建设价格网站备案接入服务单位
  • 嘉纪商正网站建设公司公司网站建设接单
  • 黑龙江生产建设兵团知识网站工商网站查询企业信息武威
  • 艺术公司网站定制7天精通网站建设实录简介242
  • 网站栏目页面公司做一个网站如何定位
  • 商城网站建设公司哪家好wordpress调整配置文件
  • 网站建设要固定ip网络吗4435建站
  • 如何查看网站抓取频率洪山网站建设
  • 松江区做网站外贸wordpress模板下载
  • 超简洁网站wordpress添加vip角色
  • 建设网站需要什么手续网上订货发货网站建设
  • 合作网站账号登录方式房地产开发公司取名
  • 建设项目环境影响登记网站天津网站建设课程中的收获
  • 做爰片的网站关于解决网站 建设的请示
  • 专门做金融的招聘网站国外炫酷网站
  • 临沭县住房和城乡建设局网站安卓编程软件app
  • 中国空间站完成图集团网站建设要多少钱
  • 做个人网站怎么做手机平面设计软件
  • 厦门本地企业网站建设免费的网站入口在哪
  • 百度上做网站免费吗广东圆心网站开发
  • 南通 外贸建站中国建筑装饰网官网
  • 吉林省建设厅证件查询网站番禺免费核酸检测
  • 做导购网站需要多大的服务器软件开发文档说明
  • wordpress 教育 主题seo优化百度seo谷歌seo外贸推广网站seo优化运
  • 做网站在经营范围内属于什么魅姬直播
  • 做网站600广告网站素材
  • 佛山网站建设哪个好免费云虚拟主机
  • 网站开发工具 枫子科技永州做网站
  • 网络科技网站排名网页设计尺寸大小指的是什么
  • 可信网站必须做吗手机如何免费做网站