苏州java学习培训机构_苏州JAVA培训
来源:教育联展网 编辑:佚名 发布时间:2018-08-22
培训Java与自学Java的差距
我以前也是自学Java,在一家公司跟着别人学,以前是别人眼中的菜鸟,现
在是别人眼中的大神,Java很简单的,贵在坚持和多练,没必要花那培训钱。如果真的要去学的话,
选择Java培训机构要注意这两点基本上就能避免一些坑:
1. 老师没有正经公司工作经历,或者没有已经在线上正常运转的产品。一
些所谓培训班的老师水平往往比较一般,甚至还有培训出来后又接着培训别人的。
2、是不是会承诺帮你找到工作,要找到好的工作,不是靠别人给你保证的
,还是要靠自己提升能力。
建议多自己学习加上找些好的代码主动学习。例如github,多练习网上很多
网站里真正好的代码。作为Java工程师,可以多看看spring文档,看看很多已经成熟的框架,深入去体会。另外,学软件等等**好还是自己多学,找点
视频教程之类,也省点钱。
Java基础语法
Java基础语法
流程控制语句
Java 编译器执行流程
if 分支结构
switch 选择结构与相关规则
循环结构
for 循环
while 循环
do-while 循环语句
各语句性能对比与应用场景
特殊流程控制语句
方法的声明与使用
方法调用的过程分析
跨类调用方法
参数的值传递
方法的重载 Overload
hardfault排故记录01
>
平台:
CPU :STM32f103rct6
编译器 :MDK5.20;
调试工具:ULINK2
现象:
主板上电后链接ULINK,SW接口可以链接、可以**程序,偶尔出现cannot access target shutting down debug session
错误提示。
程序运行后,进入hardfault错误处理函数。
分析
寻找产生fault原因
1 Cortex-M3/4的Fault简介
Cortex-M3/4的Fault异常是由于非法的存储器访问(比如访问0地址、写只读存储位置等)和非法的程序行为(比如除以0等)等造成的。常见的4种异常及产生异常的情况如下: Bus Fault:在fetch指令、数据读写、fetch中断向量或中断时存储恢复寄存器栈情况下,检测到内存访问错误则产生Bus Fault。 Memory Management Fault:访问了内存管理单元(MPU)定义的不合法的内存区域,比如向只读区域写入数据。 Usage Fault:检测到未定义指令或在存取内存时有未对齐。还可以**软件配置是否检测到除0和其它未对齐内存访问也产生该异常,默认关闭,需要在工程初始化时配置: Hard Fault:在调试程序过程中,这种异常**常见。上面三种异常发生任何一种异常都会引起Hard Fault,在上面的三种异常未使能的情况下,默认发生异常时进入Hard Fault中断服务程序。使能前三种异常也要在初始化时配置:
cortex-m3内核出现HardFault_Handler故障的原因主要有两个方面:
1、内存溢出或者访问越界。这个需要自己写程序的时候规范代码,遇到了需要慢慢排查。
2、堆栈溢出。增加堆栈的大小。
调试
1, 查看产生hardfault原因
1)在stm32f10x_it.c中的hardfault处理函数中设置断点,当发生hardfault时进入断点。
void HardFault_Handler(void)
{
/* Go to infinite loop when Hard Fault exception occurs */
while (1)
{
}
}
2)当进入Hard Fault断点后,菜单栏Peripherals >Core Peripherals >Fault Reports打开异常发生的报告,查看发生异常的原因:
3)查看发生错误代码地址:
Cortex‐M3 在进入异常服务例程时,自动压栈了 R0‐R3, R12, LR, PSR 和 PC,并且在返回时自
动弹出它们,**读取 PSP 的值, OS 就能够获取用户应用程序使用的堆栈,进一步地就知道了在发
生异常时,被压入寄存器的内容。
**左侧寄存器的值可以查找SP值,可得SP的地址为0x2000AF0,再在memory框中输入SP的地址,查看堆栈里面的值依次为R0~R3、R12、LR、PC、XPRS,显然堆栈后第21个字节到24字节即为LR,该地址0x0800186B即为异常前PC将要执行的下一条指令地址。再**memory查找这个地址所对应的代码即可查找到响应错误语句。
相关推荐:
苏州JAVA培训 苏州JAVA培训班 苏州JAVA培训机构
上一篇:张家港java培训讲师_张家港JAVA培训 下一篇:太仓java学习培训_太仓JAVA培训