历史上的今天
返回首页

历史上的今天

今天是:2024年09月12日(星期四)

正在发生

2019年09月12日 | 秉火429笔记之七位带操作

2019-09-12 来源:eefocus

位带概况

位操作,简单的理解,可以单独的对一个比特位读和写,51单片机非常常见。类如,51单片机通过关键字sbit来实现位定义,STM32并没有这个关键字,而是通过访问位带别名区(Bit band alias)来实现的。


通过查看《M4内核参考手册》3.4 system address map 可知下图:

M4中2个区域实现了位带,其一为SRAM的最低1MB空间,其二为外设区域的最低1MB空间。


参考3.7 Bit-banding 可知,位带区的一个比特经过膨胀后,虽然变大到4个字节,但是还是LSB才有效。有人会问这不是浪费空间吗,要知道F429的系统总线是32位的,按照4个字节访问的时候是最快的,所以膨胀成4个字节来访问是最高效的。通过指针的形式访问位带别名区地址从而达到操作位带区比特位的效果。


// 把“位带地址+位序号”转换成别名地址的宏

#define BITBAND(addr, bitnum) ((addr & 0xF0000000)+0x02000000+((addr & 0x000FFFFF)<<5)+(bitnum<<2))

 

// 把一个地址转换成一个指针

#define MEM_ADDR(addr) *((volatile unsigned long *)(addr))

 

// 把位带别名区地址转换成指针

#define BIT_ADDR(addr, bitnum) MEM_ADDR(BITBAND(addr, bitnum))

推荐阅读

史海拾趣

Bomar Interconnect公司的发展小趣事

在电子行业的激烈竞争中,Bomar Interconnect公司凭借持续的技术创新,逐渐崭露头角。公司研发团队不断深入研究新型连接技术,成功推出了一系列高性能、高可靠性的连接器产品。这些产品在市场上获得了广泛认可,为公司带来了稳定的收入来源。同时,公司还积极投入资源,加强与其他企业的技术合作,不断拓宽产品应用领域,进一步提升了公司的市场竞争力。

ET Enterprises Ltd公司的发展小趣事

随着技术的不断进步和市场需求的增长,ET Enterprises Ltd公司开始推出多种类型的光电倍增管产品,包括普通可见光型、紫外灵敏型、日盲型等。同时,公司也积极拓展国际市场,与全球各地的客户建立合作关系,进一步巩固了其在光电倍增管领域的领先地位。

Esico-Triton公司的发展小趣事

Esico-Triton公司成立于XXXX年,起初是一个小型的电子设备研发团队。当时,创始人[XXXXX]和[XXXXX]看到了电子设备市场的巨大潜力,于是决定合作创办一家公司。他们的初衷是开发一款能够简化工作流程的电子设备。在公司创立初期,资金紧张,研发条件有限,但团队成员凭借着对技术的热情和专业知识,成功研发出了第一款产品——一款便携式数据处理器。这款产品因其便携性和高效性受到了市场的欢迎,为Esico-Triton的后续发展奠定了坚实的基础。

Global Power Technologies Group公司的发展小趣事
注意电阻和电容的匹配问题,避免因参数不匹配导致电路性能下降。
Amphenol Aerospace公司的发展小趣事
在电源保护、过流保护等场合,集基耦合单稳态电路可以检测异常信号并产生相应的保护动作。
ELM Technology Corporation公司的发展小趣事

随着环保意识的不断提高,ELM Technology Corporation积极响应国家号召,将环保理念融入企业发展中。公司投入大量资金研发环保型电子产品,努力降低产品对环境的影响。同时,ELM还积极参与各类环保活动,推动电子行业的绿色发展。这种对环保的执着追求让ELM在行业中树立了良好的形象。

问答坊 | AI 解惑

pc机的emulator中编译成功的程序怎么在WinCE系统中运行呢?

我在PC机上用eVC写了一段程序,并且在Win32{WCE emulator} Debug中运行通过,怎么才能让这段程序在一个ARM9的WinCE系统下运行呢? 小弟初学eVC,求各位给个详细点儿的过程吧,在线等,感激不尽...…

查看全部问答>

NAND Flash的名字可以修改名称吗

在注册表里面把NAND Flash文件夹的名称全部修改后,打开资源管理器发现NAND Flash的名字并没有有改,不通过修改bsp可以修改名称吗?…

查看全部问答>

wince BSP 的开发

有人做过 wince bsp的开发吗? 我想在PC104上 定制wince内核 可是 厂家没有提供 BSP 这个比较头疼 有大侠 做过 BSP 定制吗? 小弟 MSN : yh052720@163.com QQ : 10648820 …

查看全部问答>

高手帮忙!xxx_Init 初始化的结构体 到xxx_Open 怎么好多成员变了阿

还请高手帮帮忙,郁闷死我了。。。 我的设备结构体如下, typedef struct {     CHANEL chA;   //A通道     CHANEL chB;    //B通道     DWORD  Xtal;   //晶振频率 &nbs ...…

查看全部问答>

请大虾们帮我看看阿 我的中断怎么老进不去阿

请大虾们帮我看看阿 我的中断怎么老进不去阿: 我用的是LPC2119芯片 用于检测频率信号 可是中断老是进不去 请大家帮我看看 是不是那地方配置有问题呢? #include \"config.h\" uint16 Fdiv; uint8 p; uint8 flag_ri; uint32 T1temp0,T1temp ...…

查看全部问答>

请教有关 JTAG 、按钮上拉电阻、UART 外围电路问题

大家好,刚接触LM3S,有几个问题想请教大家: 看fengzhang2002的帖子加仿真器是什么意思,没有明白?我原以为把JTAG的脚引出,然后直接接ULINK2来调试和编程,不知道这样行不行?这样是不是只需要7根线就行了? 另外,像按钮这些,是不是可以通过 ...…

查看全部问答>

富士通开发板DIY:晒一下厨房DIY的成果和进度

厨房部分的功能全部调试完毕,只差无线调试和串口调试了!烟雾部分:模拟开关:温湿度部分:步进电机部分:整体:各部分心得会逐步分享,请大家指正!…

查看全部问答>

火焰传感器

本帖最后由 paulhyde 于 2014-9-15 04:02 编辑 今年TI杯可能用到火焰传感器吗?  …

查看全部问答>

欧洲的几个频段划分

Frequency bands commonly designated to Short Range Devices within 25 MHz to 1 000 MHz Frequency Bands/FrequenciesApplicationsTransmit and Receive26,995 MHz, 27,045 MHz, 27,095 MHz,27,145 MHz, 27,195 MHz,34,995 MHz to 35,225 MHz, ...…

查看全部问答>