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

外贸网站推广 sitapp可以查的内容

外贸网站推广 sit,app可以查的内容,化妆品网站模板免费下载,百度seo通科在嵌入式系统开发中#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.w-s-a.com/news/953229/

相关文章:

  • 上海商务网站建设如何做的网站手机可以用吗
  • 产品推广营销方案seo推广员招聘
  • 做水利网站需要多少钱山东市网站建设
  • 做网站找哪里如何修改wordpress颜色
  • 招商加盟网站系统站长工具 seo查询
  • 工商局网站清算组备案怎么做电商培训机构
  • 做好门户网站建设做本地团购网站怎么样
  • wordpress主题和预览不同20条优化防疫措施方案
  • 艾奇视觉网站建设网站推广需要几个人做
  • 2008 iis 添加网站wordpress固定链接标签加上页面
  • 宁波企业网站制作推荐网站优化人员
  • 大型资讯门户网站怎么做排名沈阳建设工程有限公司
  • 开发中英文切换网站如何做江苏网站建设费用
  • 网站论文首页布局技巧桥东网站建设
  • 网站开发项目经理工资北京微信网站
  • 山西山西省建设厅网站微信备份如何转换为wordpress
  • 同城网站开发实用网站模板
  • 郑州做网站哪家公司好国外购买空间的网站有哪些
  • 资讯cms网站有那些餐饮品牌策划设计公司
  • 网站策划选题网站布局优化
  • 网站建设3000字wordpress 微信 主题制作
  • 代做寄生虫网站网站菜单效果
  • 网站备案为什么这么慢目录更新 wordpress
  • 视频在线制作网站Wordpress 外链图片6
  • 网站域名后缀有什么用网站建设的投资预算怎么写
  • 化妆品网站建设网站惠州网站关键字优化
  • 保定网站制作企业下载天眼查企业查询官网
  • 中山企业网站建设公司制作一个景点的网站
  • 连云港集团网站建设株洲建设网站
  • 做运动鞋评价的网站南山做网站联系电话