你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

FreeRTOS中为什么要以这种宏定义方式访问指定地址的值

[复制链接]
patch1582 提问时间:2026-4-27 10:16 / 未解决

在FreeRTOS中需要启用 ARM-Cortex 内核 CYCNT 寄存器。要实现这个功能,必须将地址为0xE0001000的 DWT_CTRL 寄存器的使能位置 1。 我不理解的是为什么要使用下面这种宏定义(第 1 行),把寄存器的值赋值给宏DWT_CTRL,然后像第 34 行那样去修改它?

define DWT_CTRL ((volatile uint32_t)0xE0001000)

int main(void) { / USER CODE BEGIN 1 / TaskHandle_t task1_handle; TaskHandle_t task2_handle;

BaseType_t status;

/ USER CODE END 1 /

/ MCU Configuration--------------------------------------------------------/

/ Reset of all peripherals, Initializes the Flash interface and the Systick. / HAL_Init();

/ USER CODE BEGIN Init /

/ USER CODE END Init /

/ Configure the system clock / SystemClock_Config();

/ USER CODE BEGIN SysInit /

/ USER CODE END SysInit /

/ Initialize all configured peripherals / MX_GPIO_Init(); / USER CODE BEGIN 2 /

//Enable the CYCCNT

DWT_CTRL |= (1<<0);

收藏 评论0 发布时间:2026-4-27 10:16

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版