问答

汇集网友智慧,解决技术难题

情意深深

TA的家园币:143  

  • 关于飞思卡尔(freescale)XHY128的内部Pflash空间实际大小?

    首先感谢各位读者百忙之中的关注和阅读,能指点一下万分感谢!本人用飞思卡尔的XHY256开发的一个项目(具有BOOTLODER功能),然后将该工程烧写到XHY128的芯片上竟然能够成功的运行。我在数据手册中查到的是:256的芯片的PFLASH的物理地址范围为0x7C0000~0x7FFFFF,(256KB)128的芯片的PFLASH的物理地址范围为0x7E0000~0x7FFFFF,(128KB)奇怪的是我通过map文件确认工程中的BOOT部分的main函数地址明明超出了128芯片的地址范围,但是烧录进去以后还是看不出什么异常现象?屏幕能正常显示,开机界面也是正常。这里我的一个唯一合理的猜测就是XYH128的芯片内部Pflash资源其实也是256kb。有没有有经验的同志解答一下。

  • 关于Cortex-M4内核的中断入栈过程以及栈帧的问题

    在看Cortex-M3和Cortex-M4内核权威指南这本书的时候,发现了“栈帧”这个概念。我从书上理解的是:中断来临后会将内部寄存器以及内部特殊寄存器进行入栈,入栈的寄存器是固定的那几个,反正就是八个字大小(包含浮点寄存器的情况是26个字),但是我在一个stm32f407的带定时器中断的简单例程进debug看了下汇编代码。发现了不管是子函数调用还是跳转到中断服务函数,入栈保存的数据根本就不是权威指南说的8个字或者26个字,而是只入栈要跳转的函数中会被改变的内部寄存器,所以就又不懂“栈帧”了。难道是这里说的“栈帧”仅仅是为了服务RTOS等嵌入式操作系统定义的么?为了能更方便的从栈中提取到自己想要的内部寄存器的值,利用栈帧规定好每个位置保存的是哪个寄存器的值?也就是说自己写的裸机程序编译器只会把需要保存的寄存器保存,不会改变的寄存器直接不保存?不知道我说的清不清楚,希望懂得老哥们能给小弟答疑解惑!先谢为敬

  • 关于Cortex-M4内核的中断入栈过程以及栈帧的问题

    在看Cortex-M3和Cortex-M4内核权威指南这本书的时候,发现了“栈帧”这个概念。我从书上理解的是:中断来临后会将内部寄存器以及内部特殊寄存器进行入栈,入栈的寄存器是固定的那几个,反正就是八个字大小(包含浮点寄存器的情况是26个字),但是我在一个stm32f407的带定时器中断的简单例程进debug看了下汇编代码。发现了不管是子函数调用还是跳转到中断服务函数,入栈保存的数据根本就不是权威指南说的8个字或者26个字,而是只入栈要跳转的函数中会被改变的内部寄存器,所以就又不懂“栈帧”了。难道是这里说的“栈帧”仅仅是为了服务RTOS等嵌入式操作系统定义的么?为了能更方便的从栈中提取到自己想要的内部寄存器的值,利用栈帧规定好每个位置保存的是哪个寄存器的值?也就是说自己写的裸机程序编译器只会把需要保存的寄存器保存,不会改变的寄存器直接不保存?不知道我说的清不清楚,希望懂得老哥们能给小弟答疑解惑!先谢为敬