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

[复制链接]
 楼主| 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 | 显示全部楼层
你函数地址和芯片的程序地址可不一样啊

lisn3188 发表于 2024-2-21 12:27 | 显示全部楼层
试着回答一下
1. 理论上是可以的,但你得用汇编。把代码段定位到0开始的地址。
2. 楼主位的写法,肯定是不行的。C语言在运行前会有很多的初始化工作。至少要初始化堆栈。
淡漠安然 发表于 2024-2-21 12:30 | 显示全部楼层
得有时钟配置,一些启动文件的调用啥的

江河千里 发表于 2024-2-21 14:30 | 显示全部楼层
不是你说的这种,你说这种程序都运行不了

冰春彩落下 发表于 2024-2-21 16:30 | 显示全部楼层
建议还是看看MCU的运行逻辑,应该能理解程序的运行方式

远山寻你 发表于 2024-2-21 20:30 | 显示全部楼层
你现在对地址和地址不理解,外设地址是不一样的

三生万物 发表于 2024-2-21 22:30 | 显示全部楼层
你是想直接操作外设地址吧,你找到这个IO的地址,你给置位估计可以

暖了夏天蓝了海 发表于 2024-2-22 02:00 | 显示全部楼层
芯片是要从0启动啊,但启动后,需要执行一些初始化操作的

别乱了阵脚 发表于 2024-2-22 04:00 | 显示全部楼层
不是随便写个函数在0地址就能行的,还是需要找到对应的外设,给写数据才行,其实你要真想研究,可以研究寄存器的

Dick Hou 发表于 2024-2-22 15:28 | 显示全部楼层
本帖最后由 Dick Hou 于 2024-2-22 15:30 编辑

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

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

所以需要一个汇编文件,将上述2个地址从0开始存放。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

588

主题

3619

帖子

3

粉丝

588

主题

3619

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部