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

网站开发工程师ppt/软件推广

网站开发工程师ppt,软件推广,要怎么做网站推广,廊坊做网站的公司在keil中可以使用下面的方法将数组定义到指定的位置 uint8_t g_usart_rx_buf[USART_REC_LEN] __attribute__ ((at(0X20001000)));但是这个方法在IAR中是用不了的,通过网上查找各种资料,发现了两种可用的方法。我这里测试的单片机是stm32f103c8t6,其他单…

在keil中可以使用下面的方法将数组定义到指定的位置

uint8_t g_usart_rx_buf[USART_REC_LEN] __attribute__ ((at(0X20001000)));

但是这个方法在IAR中是用不了的,通过网上查找各种资料,发现了两种可用的方法。我这里测试的单片机是stm32f103c8t6,其他单片机的操作方法是一样的。

第一种方法
先用记事本打开stm32f103xb_flash.icf 这个文件
在这里插入图片描述
里面的代码如下

/*###ICF### Section handled by ICF editor, don't touch! ****/
/*-Editor annotation file-*/
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */
/*-Specials-*/
define symbol __ICFEDIT_intvec_start__ = 0x08000000;
/*-Memory Regions-*/
define symbol __ICFEDIT_region_ROM_start__   = 0x08000000 ;
define symbol __ICFEDIT_region_ROM_end__     = 0x0801FFFF;
define symbol __ICFEDIT_region_RAM_start__   = 0x20000000;
define symbol __ICFEDIT_region_RAM_end__     = 0x20004FFF;
/*-Sizes-*/
define symbol __ICFEDIT_size_cstack__ = 0x400;
define symbol __ICFEDIT_size_heap__   = 0x200;
/**** End of ICF editor section. ###ICF###*/define memory mem with size = 4G;
define region ROM_region   = mem:[from __ICFEDIT_region_ROM_start__   to __ICFEDIT_region_ROM_end__];
define region RAM_region   = mem:[from __ICFEDIT_region_RAM_start__   to __ICFEDIT_region_RAM_end__];define block CSTACK    with alignment = 8, size = __ICFEDIT_size_cstack__   { };
define block HEAP      with alignment = 8, size = __ICFEDIT_size_heap__     { };initialize by copy { readwrite };
do not initialize  { section .noinit };place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };place in ROM_region   { readonly };
place in RAM_region   { readwrite,block CSTACK, block HEAP };

在这个文件里面添加下面两行代码

define region RAM_D1_region  = mem:[from 0x20003000 to 0x20004000];  
place in RAM_D1_region {section .RAM_D1}; 

添加完成之后如下
在这里插入图片描述
注意添加的第一行代码中内存地址的范围要在RAM地址范围之内,否则就会出错。这个地址段的名称 “RAM_D1_region” 和“RAM_D1”自己可以随便取。添加完之后保持文件。然后在代码中按照下面这种方式定义数组:

#pragma location = ".RAM_D1"   
uint8_t buf1[10]; /* 接收缓冲, 最大USART_REC_LEN个字节. */

第一行是指定数组定义的位置,第二行是自己定义的数组。
在这里插入图片描述
下面运行代码,在观察窗口中查看数组。
在这里插入图片描述
可以看到数组的起始地址为0x20003000,和刚才设置的一样。

第二种方法
直接在代码中设置数组位置

#define DATA_ADDR 0x20002000
__root  uint8_t buf2[12] @ (DATA_ADDR);   

使用宏定义指定数组位置,当然也可以不用宏定义,直接在数组后面写地址。使用这种方法的话,就不需要修改 stm32f103xb_flash.icf 这个文件内容了,直接使用默认的内容就行。
在这里插入图片描述

直接运行程序,观察数组地址
在这里插入图片描述
可以看到buf2数组的起始地址就从0x20002000 开始了。

这里要注意一个问题,如果使用第2种方法的时候,数组大小必须是4的倍数,否则编译会报错。
比如这里将数组大小设置为10
在这里插入图片描述
这时候编译就会报错。
好了,这两种方法就分享到这,如果后面发现了其他新的方法再补充。

http://www.bjxfkj.com.cn/article/703.html

相关文章:

  • 企业网站建设方案撰写/石家庄网站建设方案
  • java用哪种构架做网站/网上有免费的网站吗
  • 精品课程网站开发/网络服务器地址怎么查
  • 怎么做网站开发/模板网站好还是自助建站好
  • wordpress 幻灯片插件使用/seo排名工具外包
  • 福州品牌网站设计/百度关键词怎么做
  • 网站建设广州/网站的开发流程
  • 如何建学校网站/网络营销专业学校排名
  • 织梦模板下载商城网站模板(高端大气上档次:带数据)/网店关键词怎么优化
  • 大气金融网站/成人教育培训机构排名
  • 自己做的网站怎么设置地址/网站的宣传推广方式
  • 最近一周新闻摘抄/seo有哪些优缺点?
  • 什么是网络营销?有何特点/苏州百度关键词优化
  • 企业营销型网站概念/杭州seo软件
  • 做网站公司那家好/手机百度安装下载
  • 网站建设用语/肇庆网站建设制作
  • 济南学习做网站/2023年12月疫情又开始了吗
  • 上海网站seo优化/网站制作基本流程
  • 凡客网站设计/seo软文是什么意思
  • 福建省城乡建设官方网站/福州短视频seo机会
  • 深圳市网站建设公司设计/地推网app推广平台
  • php开发网站 用java做后台/竞价外包
  • 清远网站seo公司/比较好的网站建设网站
  • 织梦的网站关键词/高端网站定制开发
  • 西安云英网站建设/上海seo网站策划
  • asp网站伪静态文件下载/网站建设黄页免费观看
  • 新疆宏远建设集团有限公司网站/嘉峪关seo
  • 网站首页页面/seo优化关键词排名优化
  • 网站建设的企业/河南网站seo费用
  • 深圳市网站建设公司设计/网站首页排名seo搜索优化