打印

C语言问题

[复制链接]
2905|22
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chenjunt|  楼主 | 2012-7-29 09:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
ousj| | 2012-7-29 09:46 | 只看该作者
汇编格式 指明一下代码的位置。
C就不用指明位置了,编译器自动处理。所以说C方便嘛

使用特权

评论回复
板凳
chenjunt|  楼主 | 2012-7-29 09:51 | 只看该作者
楼上没明白我的意思啊

使用特权

评论回复
地板
ousj| | 2012-7-29 09:51 | 只看该作者
难道你是想在400H的位置调用reset程序
这要绝对定位了
用汇编比较好,C的话没有标准方法,取决于编译器

使用特权

评论回复
5
chenjunt|  楼主 | 2012-7-29 09:53 | 只看该作者

我想在未用地址多插入几条reset();实现软复位

winavr+studio里面不知道怎么实现

或者烧写芯片的时候可以填充JMP  0x00000000吗???

使用特权

评论回复
6
morrisk| | 2012-7-29 09:53 | 只看该作者
这个你得研究一下编译器的手册,不然直接用汇编操作吧

使用特权

评论回复
7
zyf部长| | 2012-7-29 09:57 | 只看该作者
void (*reset)(void)=0x00000400;
这样不可以吗?

使用特权

评论回复
8
chenjunt|  楼主 | 2012-7-29 09:57 | 只看该作者
我是要把reset();存放在0x00000400开始的地址

不是运行reset();就让PC指向0x00000400

使用特权

评论回复
9
pangb| | 2012-7-29 10:01 | 只看该作者
在链接的时候指定吧

使用特权

评论回复
10
kangzj| | 2012-7-29 10:01 | 只看该作者
这个用法在C标准里面是未定义的,就是说取决于编译器与硬件。

使用特权

评论回复
11
chuxh| | 2012-7-29 10:10 | 只看该作者
楼主这个问题这么些人都答不上来 那么说明你这个问题可能本身没啥意义 可能是走上歧途了 方法有问题 思路有问题

使用特权

评论回复
12
chuxh| | 2012-7-29 10:11 | 只看该作者
连我这个C语言高人(据说现在大部分人不敢说自己精通C语言,但是本人不仅仅是精通C,而是极其精通C语言) 都没看明白

建议换个方法........

使用特权

评论回复
13
chenjunt|  楼主 | 2012-7-29 10:12 | 只看该作者
高人:有一段代码,我就是想把这段代码从指定地址开始存放
就这样

使用特权

评论回复
14
chenjunt|  楼主 | 2012-7-29 10:13 | 只看该作者
结贴了,多谢大家讨论

使用特权

评论回复
15
ousj| | 2012-7-29 10:14 | 只看该作者
把reset设为全局变量,然后用链接脚本指定存放位置和运行位置就OK了啊

使用特权

评论回复
16
llljh| | 2012-7-29 10:15 | 只看该作者
也可以参照中断函数入口的处理方法。

使用特权

评论回复
17
rockli| | 2012-7-29 10:37 | 只看该作者
这不是c语言的问题,这是linker的问题。

使用特权

评论回复
18
lelee007| | 2012-7-29 11:57 | 只看该作者
那个函数单独列一个文件,链接的时候对那个文件指定运行地址就OK了

思路明白了吧?至于怎么操作,去翻翻书或者网上搜一把

使用特权

评论回复
19
lelee007| | 2012-7-29 11:58 | 只看该作者
还有,C语言里边的pragma预编译指令不知道能否直接实现这个功能,LZ自己翻阅以下相关资料吧,呵呵,pragma的功能我记得不是太全,也懒得去翻了

使用特权

评论回复
20
Imakey| | 2012-7-29 15:34 | 只看该作者
来学习学习

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

718

主题

7868

帖子

5

粉丝