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

网站开发做网站品牌运营

网站开发做网站,品牌运营,郑州网站建设联系方式,微网站的图标怎么做请阅读【嵌入式开发学习必备专栏 】 文章目录 问题小结栈未对齐 经过几天的调试,成功将rt-thead 移植到 RA4M2(Cortex-M33 核)上,thread 和 shell 命令已经都成功支持。 问题小结 在完成 rt-thread 代码 Makefile 编译系统搭建…


请阅读【嵌入式开发学习必备专栏 】


文章目录

    • 问题小结
      • 栈未对齐

经过几天的调试,成功将rt-thead 移植到 RA4M2(Cortex-M33 核)上,thread 和 shell 命令已经都成功支持。
在这里插入图片描述

问题小结

在完成 rt-thread 代码 Makefile 编译系统搭建后,就开始着手 rt-thread OS 的移植,不幸的是开始就遇到了问题:cortex-m33/context_gcc.S在退出 PendSV_Handler的时候发生了 HardFault_Handler,由于没有打印信息也不知道是什么原因导致 hardfault, 此外由于很久没有调试Cortex-M系列的core了,也不知道去查看哪些寄存器来分析错误原因?

栈未对齐

Memory zones:Zone: "Default" Description: Default access mode
Cortex-M33 identified.
J-Link>h
PC = 000002EC, CycleCnt = 003535BF
R0 = 20000C50, R1 = 20001A28, R2 = 00000000, R3 = 00000003
R4 = 00000000, R5 = FFFFFFBC, R6 = 00000000, R7 = 00000000
R8 = DEADBEEF, R9 = DEADBEEF, R10= DEADBEEF, R11= DEADBEEF
R12= 00000002
SP(R13)= 20000C28, MSP= 20000C28, PSP= 20001A28, R14(LR) = FFFFFFFD
XPSR = 2900000E: APSR = nzCvQ, EPSR = 01000000, IPSR = 00E (PendSV)
CFBP = 00000000, CONTROL = 00, FAULTMASK = 00, BASEPRI = 00, PRIMASK = 00
MSPLIM = 20000848
PSPLIM = 00000000Security extension regs:
MSP_S = 20000C28, MSP_NS = 00000000
MSPLIM_S = 20000848, MSPLIM_NS = 00000000
PSP_S = 20001A28, PSP_NS = 1F36C7B0
PSPLIM_S = 00000000, PSPLIM_NS = 00000000
CONTROL_S  = 00, FAULTMASK_S  = 00, BASEPRI_S  = 00, PRIMASK_S  = 00
CONTROL_NS = 00, FAULTMASK_NS = 00, BASEPRI_NS = 00, PRIMASK_NS = 00FPS0 = 00000000, FPS1 = 00000000, FPS2 = 00000000, FPS3 = 00000000
FPS4 = 00000000, FPS5 = 00000000, FPS6 = 00000000, FPS7 = 00000000
FPS8 = 00000000, FPS9 = 00000000, FPS10= 00000000, FPS11= 00000000
FPS12= 00000000, FPS13= 00000000, FPS14= 00000000, FPS15= 00000000
FPS16= 00000000, FPS17= 00000000, FPS18= 00000000, FPS19= 00000000
FPS20= 00000000, FPS21= 00000000, FPS22= 00000000, FPS23= 00000000
FPS24= 00000000, FPS25= 00000000, FPS26= 00000000, FPS27= 00000000
FPS28= 00000000, FPS29= 00000000, FPS30= 00000000, FPS31= 00000000
FPSCR= 00000000
J-Link>mem32 0x20001a18 16
20001A18 = DEADBEEF DEADBEEF DEADBEEF DEADBEEF
20001A28 = DEADBEEF DEADBEEF DEADBEEF DEADBEEF
20001A38 = 00000000 00000000 00000000 00000000
20001A48 = 00000000 00000AAD 0000055D 01000000
20001A58 = C9EC9E68 000005A9 1F58CD19 ABFBE429
20001A68 = 1D0D6F06 117A1FBC
J-Link>mem32 0x20001a08 16
20001A08 = 00000000 FFFFFFBC 00000000 00000000
20001A18 = DEADBEEF DEADBEEF DEADBEEF DEADBEEF
20001A28 = DEADBEEF DEADBEEF DEADBEEF DEADBEEF
20001A38 = 00000000 00000000 00000000 00000000
20001A48 = 00000000 00000AAD 0000055D 01000000
20001A58 = C9EC9E68 000005A9
J-Link>

cortex-m33/cpuport.c

rt_uint8_t *rt_hw_stack_init(void       *tentry,void       *parameter,rt_uint8_t *stack_addr,void       *texit)
{struct stack_frame *stack_frame;rt_uint8_t         *stk;unsigned long       i;stk  = stack_addr + sizeof(rt_uint32_t);stk  = (rt_uint8_t *)RT_ALIGN_DOWN((rt_uint32_t)stk, 8);stk -= sizeof(struct stack_frame);stack_frame = (struct stack_frame *)stk;/* init all register */for (i = 0; i < sizeof(struct stack_frame) / sizeof(rt_uint32_t); i ++){((rt_uint32_t *)stack_frame)[i] = 0xdeadbeef;}stack_frame->exception_stack_frame.r0  = (unsigned long)parameter; /* r0 : argument */stack_frame->exception_stack_frame.r1  = 0;                        /* r1 */stack_frame->exception_stack_frame.r2  = 0;                        /* r2 */stack_frame->exception_stack_frame.r3  = 0;                        /* r3 */stack_frame->exception_stack_frame.r12 = 0;                        /* r12 */stack_frame->exception_stack_frame.lr  = (unsigned long)texit;     /* lr */stack_frame->exception_stack_frame.pc  = (unsigned long)tentry;    /* entry point, pc */stack_frame->exception_stack_frame.psr = 0x01000000L;              /* PSR */stack_frame->tz = 0x00;stack_frame->lr = 0xFFFFFFBC;stack_frame->psplim = 0x00;stack_frame->control = 0x00;/* return task's current stack address */return stk;

栈结构:

struct exception_stack_frame
{rt_uint32_t r0;rt_uint32_t r1;rt_uint32_t r2;rt_uint32_t r3;rt_uint32_t r12;rt_uint32_t lr;rt_uint32_t pc;rt_uint32_t psr;
};struct stack_frame
{rt_uint32_t tz;rt_uint32_t lr;rt_uint32_t psplim;rt_uint32_t control;/* r4 ~ r11 register */rt_uint32_t r4;rt_uint32_t r5;rt_uint32_t r6;rt_uint32_t r7;rt_uint32_t r8;rt_uint32_t r9;rt_uint32_t r10;rt_uint32_t r11;struct exception_stack_frame exception_stack_frame;
};

具体内容待补充…
TODO

http://www.khdw.cn/news/15233.html

相关文章:

  • 网络营销方案分析韶山百度seo
  • 跨境电商平台介绍排名优化推广
  • 南京门户网站建设用网站模板建站
  • 微信网站开发费用百度首页登录官网
  • 优化专业的公司百度seo排名优化费用
  • 福州设计网站海外网站
  • 网站开发的语言有什么如何自己开个网站平台
  • 网站建设客户沟通模块seo外链推广员
  • 赣州网站建设平台推广任务接单平台
  • 做美容有哪些网站如何优化网站排名
  • 网站购买域名之后再怎么做合肥seo报价
  • 有多少做汽车的网站b站推广网站2022
  • 国家企业信用系统查询系统seo推广排名
  • 济南网站建设报价外贸推广优化公司
  • 万网网站模板操作网上培训课程平台
  • 外贸网站建设推广公司前景如何武汉关键词seo
  • 响应式网站建设智能优化发布软文广告
  • sgs网站开发公司2024年重启核酸
  • 做网站还有开发文档吗精准引流的网络推广
  • 政协网站建设情况汇报做优化关键词
  • 深圳做网站小程序营销图片大全
  • 河南智能网站建设平台最近三天的国内新闻
  • 微信公众平台开发实例教程seo网络推广专员
  • 网站建设方式湘潭网站设计外包公司
  • wordpress为什么在自定义结构的时候总是出现斜杠呢麒麟seo
  • 网站购买外链台州网站建设
  • 做网站的具体需求it培训机构排名
  • 梵克雅宝是哪个国家的牌子seo收费低
  • 企业网站建设网站国内专业的seo机构
  • 搭建微信网站怎么做新网站 seo