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

义乌做网站zisou8表格 wordpress

义乌做网站zisou8,表格 wordpress,品牌,南昌网站建设利润在嵌入式系统开发中#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 16800000 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 7200000 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.hkea.cn/news/14422965/

相关文章:

  • 做网站要执照吗江苏省国家示范校建设专题网站
  • 做化妆品的网站有哪些装个网络要多少钱
  • 怎样做网站兼职wordpress 安装脚本
  • 网站建设可行性分析报告范文怎么做淘宝客网站备案
  • 集团网站建设哪家更好网站建设数据库配置
  • 网站建设捌金手指下拉七wordpress 退出按钮
  • 苏州网站建设相关技术怎么创造软件app
  • 新能源 东莞网站建设深圳市住房和建设局人事调整
  • 做网站用什么服务器好中国十大网站域名
  • 高校档案馆网站建设厦门小微企业网站建设补贴
  • 建站平台有哪些免费一键搭建网站5118新媒体运营
  • 沈阳网站建设蓝顶网络国企网站建设报告
  • 建设网站要钱么网站建设教程费用
  • 海南建设培训网站wordpress 链接微博
  • 怎么联系百度人工服务seo服务收费
  • 远程教育网站开发企业融资需求怎么写
  • 做钢化膜网站快递业务服务网站建设的需求分析
  • 免费高清视频素材网站有哪些vs做网站添加背景
  • 泗阳县住房和建设局网站哪个网站可以做水果销售代理
  • 邢台哪儿做wap网站好网站空间服务器费用
  • 六安网红水坝seo石家庄
  • 企业制作网站网建服务
  • 手机文章网站源码怎么找货源开网店
  • 网站做多久流量网站响应是什么问题吗
  • 盐城建设银行招聘网站价格低用什么词形容
  • 静态网站怎么做百度推广房产中介网站源码
  • 学网站建设有用吗揭阳网站建设公司哪个好
  • 揭阳做网站建设公司免费好用的服务器
  • 建设网站前的市场分析包括哪些内容茂名网站建设服务
  • 如何建一个网站成品免费的视频软件有哪些好用点