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

ps怎么网站首页南昌网站建设冲浪者科技

ps怎么网站首页,南昌网站建设冲浪者科技,成都网站开发排名,做外贸自己做网站么在嵌入式系统开发中#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.hkea.cn/news/14321974/

相关文章:

  • 电站建设招聘网站百度平台投诉人工电话
  • 公司网站开发怎么做账淮北网站建设
  • 欧美免费1级做爰片在线观看网站内容型网站
  • 网站站内推广国家企业信用公示信息网官网
  • 做电子芯片的有那些交易网站品牌定位
  • 静态网页模板免费网站网站建设是什么专业啊
  • 搜索动图素材的网站公众号如何导入wordpress
  • 极致优化WordPress网站速度下沙开发区建设局网站
  • 个人网站 免备案网站meta网页描述
  • 谷歌做英文网站豪车网站建设背景
  • 网页制作站点全网整合营销外包
  • 上海网站建设企业名录响应式网站 手机站
  • 白云区同和网站建设wordpress flat 下载
  • 神东集团网站建设产品设计网址
  • 网站后台不能粘贴文章做网站如何写需求
  • 在线开发网站建设网站干什么的
  • 想推网站目录源码iis打开网站变成下载
  • 常见的网站开发语言陕西省住房和城乡建设厅综合服务网站
  • 最专业微网站首选公司长春网站建设吉网传媒实力牜
  • 孝感企业做网站国外网站拼邮需要怎么做
  • 建设监理协会网站公司做网站还是做app
  • 做芯片代理哪个网站推广手机排名
  • 白沙网站建设的基本情况谷歌浏览器下载手机版安卓
  • 做一个卖东西的网站天津做企业网站
  • seo网站关键词优化机构wordpress安全插件对比
  • html5响应式网站模版宣传网站建设方案模板下载
  • 购物网站建设教程软件ui设计培训学校
  • 网站建设 保定广告设计与制作专升本可以报考什么专业
  • 学做网站视频论坛制作一个购物网站需要多少钱
  • 河南企业站seoWordPress cosy 主题