请问是否可以把某个c文件中的函数以及变量(就是整个文件的内容)存放固定连续的地址中?有没有这种编译和链接选项的设置?
这个问题需要从以下几个角度考虑:
1.编译出来的代码,其中的函数的实现代码是在.text段,这是ROM的概念,通常最后是烧录到FLASH中;
2.而变量,又分局部变量和全局变量,全局变量一般是放在(BSS段和DATA段),这个内存地址,也就是RAM的概念,通常是需要在程序开始运行时,拷贝到SRAM中。
至于你问的问题,51单片机如何将函数定义在指定的程序地址,在KEIl-C51编译环境是有方法可以做到的,
你可以参考下:【单片机高阶编程】51单片机定义函数到指定的程序地址
以上,如果对你有帮助,请帮忙点个赞。谢谢。
还是要查看官方的文档说明 https://www.keil.com/support/man/docs/lx51/lx51_segments.htm
主要修改.lin文件的 CLASS 和 SEGMENT 2项,
没有找到关于文件名中地址的设定,不过目前项目按照函数方式存储固定地址也够用了。