No.53826 作者:jamesdhxy 邮件:jamesdhxy@sina.com ID:131370 登陆:1次 文章数:1篇 最后登陆IP: 最后登陆:2009/6/10 10:45:39 注册:2009/6/10 10:45:39 财富:100 发帖时间:2009/6/10 12:57:37 发贴者IP:222.129.34.234 标题:jamesdhxy:[求助]怎么把C函数指令地址定义到汇编文件中间空余的部分去,请求指点 摘要:No.53826[求助]怎么把C函数指令地址定义到汇编文件中间空余的部分去,请求指点 用汇编做主程序运行,调用C写的函数。现在汇编调用C函数和他们之间传递参数都没什么问题,但是C函数的指令空间地址超了存储空间范围,结果片上运行时一调这个C函数整个程序就跑飞了,然后单片机就复位回到0000h开始。 我用的SST的51单片机,程序空间是从0000h到FFFFh,我定义的从0000h到5FFFh是单片机运行用的程序存储空间,从6000h到BFFFh是备份程序空间,不写入运行用的程序,后边的是当Flash用,所以不管汇编还是C程序都放在6000h以前的空间。汇编代码在地址上分成两部分,主要运行的部分从0000h到4600h,中间4600h到5500h是空白的,后边5500h到5FF4h这块地址上是一部分固定地址的代码,C函数只能放在4600h到5500h之间空白的地址段上。 汇编文件是一个.A51文件,C函数文件是一个.C文件,再加上头文件一共是3个文件,如果我不指定C函数的地址,那么连接器就把前边的A51主程序的固定 ......
>>返回讨论的主题
|