打印
[MCU]

用C怎么写

[复制链接]
1045|29
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhenykun|  楼主 | 2019-5-17 19:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
lizye| | 2019-5-17 19:59 | 只看该作者

汇编格式 指明一下代码的位置。
C就不用指明位置了,编译器自动处理。所以说C方便嘛

使用特权

评论回复
板凳
zhenykun|  楼主 | 2019-5-17 20:03 | 只看该作者

楼上没明白我的意思啊

使用特权

评论回复
地板
jiahy| | 2019-5-17 20:10 | 只看该作者

难道你是想在400H的位置调用reset程序
这要绝对定位了
用汇编比较好,C的话没有标准方法,取决于编译器

使用特权

评论回复
5
zhenykun|  楼主 | 2019-5-17 20:12 | 只看该作者

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

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

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

使用特权

评论回复
6
liliang9554| | 2019-5-17 20:15 | 只看该作者

这个你得研究一下编译器的手册,不然直接用汇编操作吧

使用特权

评论回复
7
shimx| | 2019-5-17 20:17 | 只看该作者


void (*reset)(void)=0x00000400;
这样不可以吗?

使用特权

评论回复
8
zhenykun|  楼主 | 2019-5-17 20:21 | 只看该作者

我是要把reset();存放在0x00000400开始的地址

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

使用特权

评论回复
9
jiahy| | 2019-5-17 20:24 | 只看该作者
void (*reset)(void)不是空返回值的吗,不对吧!

使用特权

评论回复
10
jiaxw| | 2019-5-17 20:27 | 只看该作者

在链接的时候指定吧

使用特权

评论回复
11
jiaxw| | 2019-5-17 20:30 | 只看该作者
这个用法在C标准里面是未定义的,就是说取决于编译器与硬件。

使用特权

评论回复
12
jiaxw| | 2019-5-17 20:32 | 只看该作者
楼主这个问题这么些人都答不上来 那么说明你这个问题可能本身没啥意义 可能是走上歧途了 方法有问题 思路有问题

使用特权

评论回复
13
午夜粪车| | 2019-5-17 20:40 | 只看该作者

连我这个C语言高人(据说现在大部分人不敢说自己精通C语言,但是本人不仅仅是精通C,而是极其精通C语言) 都没看明白

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

使用特权

评论回复
14
zhaoxqi| | 2019-5-17 20:43 | 只看该作者

高人:有一段代码,我就是想把这段代码从指定地址开始存放
就这样

使用特权

评论回复
15
dengdc| | 2019-5-17 20:53 | 只看该作者
把reset设为全局变量,然后用链接脚本指定存放位置和运行位置就OK了啊

使用特权

评论回复
16
liliang9554| | 2019-5-17 20:56 | 只看该作者
也可以参照中断函数入口的处理方法。

使用特权

评论回复
17
huangchui| | 2019-5-17 21:00 | 只看该作者

这不是c语言的问题,这是linker的问题。

使用特权

评论回复
18
zhanghqi| | 2019-5-17 21:03 | 只看该作者

那个函数单独列一个文件,链接的时候对那个文件指定运行地址就OK了

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

使用特权

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

使用特权

评论回复
20
spark周| | 2019-5-17 21:08 | 只看该作者

我理解楼主的意思,楼主是为了系统万一崩溃的时候可以自动复位。
但这个用看门狗也是可以的

使用特权

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

本版积分规则

868

主题

11535

帖子

3

粉丝