打印
[Motor Control]

请问芯片从0地址开始跑,是不是随便写个函数在0地址就可以跑?

[复制链接]
955|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
stormwind123|  楼主 | 2024-1-26 09:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好,我有个问题,如果可以的话想请教一下

现在有一款freescale的芯片,FLASH从0地址开始,我想测试一下,比如写一个函数叫void led(void)
{
  /*比如说这是点亮灯的逻辑*/
  0x12345678=1;
  while(1);
}

使用特权

评论回复
沙发
cr315| | 2024-2-10 17:50 | 只看该作者
没那么简单吧

使用特权

评论回复
板凳
夜阑风雨| | 2024-2-21 08:30 | 只看该作者
不是这种逻辑啊,你芯片0地址不得是初始化函数啥的么

使用特权

评论回复
地板
光辉梦境| | 2024-2-21 10:30 | 只看该作者
你函数地址和芯片的程序地址可不一样啊

使用特权

评论回复
5
lisn3188| | 2024-2-21 12:27 | 只看该作者
试着回答一下
1. 理论上是可以的,但你得用汇编。把代码段定位到0开始的地址。
2. 楼主位的写法,肯定是不行的。C语言在运行前会有很多的初始化工作。至少要初始化堆栈。

使用特权

评论回复
6
淡漠安然| | 2024-2-21 12:30 | 只看该作者
得有时钟配置,一些启动文件的调用啥的

使用特权

评论回复
7
江河千里| | 2024-2-21 14:30 | 只看该作者
不是你说的这种,你说这种程序都运行不了

使用特权

评论回复
8
冰春彩落下| | 2024-2-21 16:30 | 只看该作者
建议还是看看MCU的运行逻辑,应该能理解程序的运行方式

使用特权

评论回复
9
远山寻你| | 2024-2-21 20:30 | 只看该作者
你现在对地址和地址不理解,外设地址是不一样的

使用特权

评论回复
10
三生万物| | 2024-2-21 22:30 | 只看该作者
你是想直接操作外设地址吧,你找到这个IO的地址,你给置位估计可以

使用特权

评论回复
11
暖了夏天蓝了海| | 2024-2-22 02:00 | 只看该作者
芯片是要从0启动啊,但启动后,需要执行一些初始化操作的

使用特权

评论回复
12
别乱了阵脚| | 2024-2-22 04:00 | 只看该作者
不是随便写个函数在0地址就能行的,还是需要找到对应的外设,给写数据才行,其实你要真想研究,可以研究寄存器的

使用特权

评论回复
13
Dick Hou| | 2024-2-22 15:28 | 只看该作者
本帖最后由 Dick Hou 于 2024-2-22 15:30 编辑

如果是cortex内核,你怎么搞也不可能从0地址运行!

因为0地址,存放的是堆栈指针!第二个地址,是程序的首地址。你程序从第二个地址开始存放的话,是可以跑的。

所以需要一个汇编文件,将上述2个地址从0开始存放。

使用特权

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

本版积分规则

416

主题

2129

帖子

2

粉丝