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

网站开发的经验技巧网站设计需要考虑哪些基本原则

网站开发的经验技巧,网站设计需要考虑哪些基本原则,wordpress小工具导入,电子商务和网站建设论文目录 1. 不添加#pragma语句 2. 添加#pragma语句 3. 标定量只给flash空间#xff0c;不给ram指定空间 4. 总结 在之前不会使用overlay机制的时候#xff0c;我们想要做汽车标定#xff0c;标定常量编译出来的地址一般都应该是ram的地址#xff0c;而且在链接文件中都会指… 目录 1. 不添加#pragma语句 2. 添加#pragma语句 3. 标定量只给flash空间不给ram指定空间 4. 总结 在之前不会使用overlay机制的时候我们想要做汽车标定标定常量编译出来的地址一般都应该是ram的地址而且在链接文件中都会指定一段区域来存放标定量和观测量。 那么为什么要提出这样奇怪的问题呢 起因是在向客户询问标定量存放在在ram的哪个位置时客户说不需要指定特定的段。 这就有点疑惑了在标定中明确说了标定过程会分为两页workingpage和referencepageWP:可以进行数据修改的页通常是ram段RP不能修改的页通常是flash段在ETAS的文档里更明确的表示 所以不指定位置的话标定数据会存放到哪里呢那么我用#pragma来做了如下试验分享给大家。 1. 不添加#pragma语句 不添加上述语句则不指定标定数据具体会放在什么位置 经过编译此时未给变量分配地址、链接分配地址之后结果如下  可以看到编译器将变量放在了0xd0000840这个位置。结合ld文件 发现它把变量放在了DMI_DSPRram段所以有理由来谈谈变量在MCU放的位置 MCU能存放数据的地方有三处register、rom、ram涉及到预定义的 .text段   存放代码 .rodata段 存放只读数据 .noinit段  存放不需要初始化数据 .bss段   存放默认初始化数据一般为0 .data段   存放已初始化数据 CSTACK段 栈 HEAP段   堆 下面来看一些变量的例子 属性 位置 操作 举例 宏变量 预编译期间被汇编进.text段 运行已不存在 常量 放在.rodata段 程序访问在.rodata读取 未初始化全局变量 放在.noinit段一般在ram 在.noinit _no_init uint32_t ni_global_var;     默认0初始化全局变量 存放在.bss段一般放在ram 启动时将bss清零程序访问时在.bss段存取 已初始化全局变量 初始化值存放在.data_init段一般是ROM变量本身是存在.data段一般放在ram 启动时将初值从.data_init段复制到.data段程序访问时均是在.data段存取 注1观测量是放在.bss段的 2标定量本身应该是放在.data段的 可以看到calibration1变量本身是放在ram里的在程序上电但未运行时ram里肯定是为0的所以必须有一个从rom把值拷贝到ram指定位置的操作 根据链接文件里可以看到DMI_DSPR是从PFLASH1l里读取值所以有理由相信在未指定ram区域给标定量时初始化值是存在PFLASH1且变量本身是放在ram里位置由链接文件指定。那么这个值是存在flash里的具体位置应该如何找 可以看到.data_start是从0x802a20a8开始那么0x802a20a8肯定是calibra1的初始值[1,1,1,1,1]查看hex文件里 2. 添加#pragma语句 在添加上述语句之后正常情况下标定量和观测量是会放到我们指定的区间的 通过链接文件给标定量分别划分了ram区和flash区 在这里给标定量划分的flash区间是0Xaf004000共80K给标定量划分的RAM区间是0x60000000也是80k 同时也给观测量划分了ram区间是0x60015000共4K。 那么现在就看如何将标定量观测量放到指定区间了 首先看看结果 calibration1被放到了区域.calDataOvc这是一块什么区域呢来看看链接文件进一步解释  可以看到在单片机开始运行之后单片机会把RP_CAL0中的值复制到WP_CAL0并且是变量名和值是一一对应。 此时我们来看hex文件在AF004000处应该是calibration1的初值[1,1,1,1,1] 3. 标定量只给flash空间不给ram指定空间 在链接文件这样写 因为没有指定映射到ram的具体地址所以在map文件里会出现如下现象 对比加上WP_CAL0 ATRP_CAL0  可以看到这个变量本身是放在flash里的也就起不到标定的作用了。 而标定量初始值如下没有变化 为了比较不修改rpcal1如下 在相应位置添加#pragma语句  编译之后在map文件中calibration4的位置在60001000 而在hex中af005000能找到其初始值  也就是说通过语句 WP_CAL1 AT  RP_CAL1将标定量本身放在了ram里标定量初始值放在了flash里在程序上电运行后通过CALINIT函数把flash的值拷贝到指定的ram区 当然也有直接在内核初始化的时候将flash的值copy到ram里hightec的ld文件 这里就要修改链接文件如下图 使用copy_table函数将指定的flash段的数据拷贝至与之匹配的ram段 Copy_table函数是在mcal的coreinit函数里 4. 总结 从以上结果来看如果只是给标定量确定了flash的位置和大小而不确定ram的大小那么编译器会直接把标定量本身以及值都会存放在指定的flash里面并且无法映射到ram因为没有做这个操作所以需要给ram去指定一个区间存放变量名把值放到flash这样我们就能做标定操作了。
http://www.zqtcl.cn/news/563965/

相关文章:

  • 地方o2o同城网站源码微信app开发价格表
  • 花木公司网站源码双语外贸网站源码
  • 什么公司做网站会提供源代码创业做招商加盟类网站赚钱
  • 东莞网站建设排名基因数据库网站开发价格
  • 天河区营销型网站建设科技自立自强
  • 网站域名账号江苏百度推广代理商
  • 专题网站建站对网站分析
  • 外贸出口网站建设如何搭建自己的网站服务器
  • 云南省建设厅网站职称评审房地产推广方案和推广思路
  • 湘潭建设路街道网站app的设计与开发
  • 《网站开发实践》 实训报告广告策划书案例完整版
  • 一级 爰做片免费网站做中学学中做网站
  • 网站排名如何提升网络营销的有哪些特点
  • 巨腾外贸网站建设个人主页网站模板免费
  • 有哪些网站免费做推广淄博网站电子商城平台建设
  • 网站建设的技术支持论文做网站买什么品牌笔记本好
  • 凡科网站后台在哪里.工程与建设
  • 静态网站源文件下载建设手机网站价格
  • 苏州做网站优化的网站开发邮件
  • 做网站怎么搭建环境阿里云大学 网站建设
  • 网站改版业务嵌入式培训推荐
  • 腾讯云 怎样建设网站网站开发 报价
  • 网络科技公司门户网站免费人脉推广官方软件
  • 建和做网站网络营销推广可以理解为
  • 太原市网站建设网站人防工程做资料的网站
  • 怎么做免费推广网站做网站第一部
  • 橙色网站后台模板WordPress的SEO插件安装失败
  • 做网站好还是做微信小程序好外包加工网外放加工活
  • 中国建设银行网站查征信电子商务网站建设及推广
  • 扫描网站漏洞的软件php网站后台验证码不显示