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

新闻列表做的最好的网站廊坊哪里有做网站的

新闻列表做的最好的网站,廊坊哪里有做网站的,旅游app界面设计,中文旅游网站html模板在嵌入式系统开发中#xff0c;实时操作系统#xff08;RTOS#xff09;的选择对于系统性能和稳定性至关重要。ThreadX是一种广泛使用的RTOS#xff0c;它以其小巧、快速和可靠而闻名。在本文中#xff0c;我们将探讨如何将ThreadX移植到STM32微控制器上#xff0c;特别是… 在嵌入式系统开发中实时操作系统RTOS的选择对于系统性能和稳定性至关重要。ThreadX是一种广泛使用的RTOS它以其小巧、快速和可靠而闻名。在本文中我们将探讨如何将ThreadX移植到STM32微控制器上特别是我们将深入研究通用启动文件tx_initialize_low_level.s。 什么是tx_initialize_low_level.s tx_initialize_low_level.s是ThreadX启动过程的关键组成部分。这个文件包含了一些底层的初始化代码这些代码在系统启动时运行以设置正确的硬件环境并跳转到主程序。 tx_initialize_low_level.s的主要组成部分 让我们来看一下tx_initialize_low_level.s的主要组成部分 IMPORT _tx_thread_system_stack_ptr IMPORT _tx_initialize_unused_memory IMPORT _tx_thread_context_save IMPORT _tx_thread_context_restore IMPORT _tx_timer_interrupt IMPORT __main IMPORT __initial_sp IMPORT __Vectors IMPORT __tx_PendSVHandler这部分代码导入了一些外部符号 SYSTEM_CLOCK EQU 168000000 SYSTICK_CYCLES EQU ((SYSTEM_CLOCK / 1000) -1)这部分代码定义了一些常量包括系统时钟频率、SysTick定时器的周期。 AREA ||.text||, CODE, READONLY PRESERVE8这部分代码定义了代码区域并指示堆栈应保持8字节对齐。 EXPORT _tx_initialize_low_level _tx_initialize_low_level这部分代码是_tx_initialize_low_level函数的定义开始的地方。在这个函数中会写入初始化系统的代码。 EXPORT SysTick_Handler SysTick_Handler PUSH {r0, lr} BL _tx_timer_interrupt POP {r0, lr} BX LR这部分代码是SysTick中断处理程序的定义。当系统定时器产生中断时这个函数会被调用。 完整代码 IMPORT _tx_thread_system_stack_ptrIMPORT _tx_initialize_unused_memoryIMPORT _tx_thread_context_saveIMPORT _tx_thread_context_restoreIMPORT _tx_timer_interruptIMPORT __mainIMPORT __initial_spIMPORT __VectorsIMPORT __tx_PendSVHandler SYSTEM_CLOCK EQU 168000000 SYSTICK_CYCLES EQU ((SYSTEM_CLOCK / 1000) -1)AREA ||.text||, CODE, READONLYPRESERVE8EXPORT _tx_initialize_low_level _tx_initialize_low_levelCPSID iLDR r0, _tx_initialize_unused_memory ; Build address of unused memory pointerLDR r1, __initial_sp ; Build first free addressADD r1, r1, #4 ;STR r1, [r0] ; Setup first unused memory pointerMOV r0, #0xE000E000 ; Build address of NVIC registersLDR r1, __Vectors ; Pickup address of vector tableSTR r1, [r0, #0xD08] ; Set vector table addressLDR r0, _tx_thread_system_stack_ptr ; Build address of system stack pointerLDR r1, __Vectors ; Pickup address of vector tableLDR r1, [r1] ; Pickup reset stack pointerSTR r1, [r0] ; Save system stack pointerMOV r0, #0xE000E000 ; Build address of NVIC registersLDR r1, SYSTICK_CYCLESSTR r1, [r0, #0x14] ; Setup SysTick Reload ValueMOV r1, #0x7 ; Build SysTick Control Enable ValueSTR r1, [r0, #0x10] ; Setup SysTick ControlLDR r1, 0x00000000 ; Rsrv, UsgF, BusF, MemMSTR r1, [r0, #0xD18] ; Setup System Handlers 4-7 Priority RegistersLDR r1, 0xFF000000 ; SVCl, Rsrv, Rsrv, RsrvSTR r1, [r0, #0xD1C] ; Setup System Handlers 8-11 Priority Registers ; Note: SVC must be lowest priority, which is 0xFFLDR r1, 0x40FF0000 ; SysT, PnSV, Rsrv, DbgMSTR r1, [r0, #0xD20] ; Setup System Handlers 12-15 Priority RegistersBX lrEXPORT SysTick_Handler SysTick_HandlerPUSH {r0, lr}BL _tx_timer_interruptPOP {r0, lr}BX LRALIGN LTORGEND注意事项 在移植到自己板子上的时候要注意更改系统时钟频率我这里是168Mhz代码中的指令是有缩进的不能取消不然会把指令识别成标签 在某些汇编语言中指令前面的空格可能是有意义的。这是因为一些汇编器如ARM汇编器使用缩进来区分标签和指令。具体来说 如果一行的开始处直接是一个指令那么汇编器可能会将其视为一个标签。标签通常用于表示内存位置如函数的开始。 如果一行的开始处是一个或多个空格然后是一个指令那么汇编器会正确地将其视为一个指令。 因此如果你删除了指令前面的空格汇编器可能会误将指令视为标签从而导致错误。
http://www.sczhlp.com/news/220679/

相关文章:

  • 彭州网站建设wordpress 远程媒体库
  • 全站仪建站流程小程序商城怎么弄
  • 网站开发 运行及维护百度网站搜索关键字
  • 虚拟主机怎么发布网站个人网页图片模块制作
  • 服务专业的网站开发设计十大纯净系统网站
  • 玉器企业网站源码炫酷的企业网站
  • 有哪些做网站的公司好苏州手机网站制作
  • 大连网站建设设计科技新闻最新消息10条
  • 徽石网站建设音乐网站的设计
  • 挂机宝怎么做网站wordpress 透明背景图片
  • 好看的网站界面设计网站建设前端工程师岗位职责
  • 织梦建设手机网站企业做网站还是做平台好
  • 网站优化qq群试用网站模版
  • 外贸网站推广教程中铁门户网登录
  • wex5做网站东莞网站制作哪家公司好
  • 网站建设实施做二手物资哪个网站好
  • 东营可以做网站的公司在哪江苏常州武进区建设局网站
  • 南通网站建设优化公司商城的网站建设
  • 网站安装代码广西代理网站建设公司
  • 制作投票网站网站建设课程教学改革
  • 邢台免费发布推广信息的平台seo管理系统易语言
  • 企业网站推广的线上渠道flask 电影网站开发
  • php网站建设文献综述wordpress侧边栏在哪调
  • 20234320 2025-2026-1 《网络与系统攻防技术》实验二实验报告
  • 20232317 2025-2026-1《网络与系统攻防技术》实验二实验报告
  • 南浔区住房和城乡建设局网站摄影师网站html5
  • 资讯类网站建设资质要求论坛门户静态网页模板
  • 有做lol直播网站有哪些人请人开发一个app要多少钱
  • 移动网站建设流程广州越秀区现在能去吗
  • 网站搭建用什么语言天津城建设计院网站