历史上的今天
今天是:2025年04月15日(星期二)
2018年04月15日 | STM32学习笔记之__attribute__ ((at())绝对定位分析
2018-04-15 来源:eefocus
学习STM32也会遇到这样的绝对定位的问题如下:
uint8_t UART_RX_BUF[1024] __attribute__ ((at(0X20001000))); //就是将串口接收的数据定位到RAM中起始地址为0X20001000;
绝对定位要么定位到flash、要么定位到RAM,这里我们将定位在flash进行说明。
MDK如何实现将数据存储到FLASH指定地址?
我们在烧录数据的时候,一般是从0x08000000开始按照顺序烧录到flash里面的,如何让数据能够定义到绝对地址如0800F000,就必须保证文件内数据也是存储在该地址,为了实现这个目的,MDK在生成文件时会填充0x00字段,从而确保能够将数据定义到
从实际情况也能验证这个原理,我以我的测试代码为例:
const u16 gFlashDefValue4[512] __attribute__((at(0x0800F000))) = {0x1111, 0x1111, 0x1111, 0x0111, 0x0111,0x0111};
可以看到Code+ReadOnly= 15236+47228 = 62464
而gFlashDefValue4占绝对地址F000+512*2 = 62464
从生成的BIN文件也可以证实该观点:
如果你自己查看生成文件也可以发现中间填充了大量的0x00.但有一点要注意, FLASH定义绝对地址时要考虑ZI-Data的长度,否则可能会导致FLASH溢出。
史海拾趣
|
PN结的正向电流大致和两个因素有关系:电压和掺杂 电压一定时,掺杂越低,电流越大,而且主要取决于低掺杂一侧 那么,当掺杂越来越低,最终到不掺杂时,岂不是电流是最大的?这显然与事实矛盾 那么掺杂到底是多少时,可以得到最大的电流呢?… 查看全部问答> |
|
摘要:本文简要介绍了日历时钟12887、DSP及液晶模块的功能特点,以及它们的硬件接口及软件设计方法,通过DSP控制,实现日历时钟在液晶上的实时显示。 关键词:日历时钟 DSP 接口 液晶显示 Abstract: This paper introduces traits o ...… 查看全部问答> |
|
本人使用三星2440平台,wince5.0 使用中发现硬件定时器采集不准确,1秒钟采集256次,会出现次数少了,然后又会突然多了的情况。 无论是采用内部时钟还是外部时钟,(外部时钟情况好像好一点),都是不准。 我的操作是用硬件定时器计时,计时到0 ...… 查看全部问答> |
|
[请问] 如何在VxWorks下开发IEEE 1394转PCI卡的驱动 转接卡用了三个芯片:TSB41AB3,M4LV -10VC -12VI和TSB12LV26,看着PCI和IEEE 1394的协议,就是不知道如何下手写这种转接卡的驱动,很郁闷,还请高手多多指点,谢谢!… 查看全部问答> |
|
小弟做酷派手机打电话程序在调用酷派的API老是说找不到函数入口点,请高手帮帮忙!! 函数原形:extend \"c\" DLLExport GSM_DialNormal( long appNum,VARIANT_BOOL *pbisRun) 我的调用方式: [DllImport(\"DialDll.dll\")] private extend static v ...… 查看全部问答> |
|
做过TSP(telephony service provider)的朋友请进 如何把自己写的tsp加到系统中? 我调用lineAddProvider添加tsp的dll后,在线路设备里找不到我添加的设备,不知是何原因?… 查看全部问答> |
|
STM32全国10大城市巡回研讨会火热进行中。 为方便广大STM32用户,配合ST推广STM32,原价68元的mcuisp串口下载软件注册版,现开放免费注册。 注册方法: 1、参加研讨会,并保留EP968手持万用在线编程器宣传彩页一张。 2、在彩页上写上邮箱 ...… 查看全部问答> |




