你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

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

[复制链接]
beary 提问时间:2016-5-31 12:34 /
大家好,我有个问题,如果可以的话想请教一下

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




这样编译了以后,下载到板子0地址可以点亮的灯吗??




然后是通过什么方式编译,然后下载到板子里呢?
<
收藏 评论15 发布时间:2016-5-31 12:34

举报

15个回答
moyanming2013 回答时间:2016-6-1 11:28:00
haohao663 发表于 2016-6-1 09:36
STM32F1入门福利贴:基于HAL库/CubeMX软件的软硬件设计手册...
https://www.stmcu.org.cn/module/forum/forum.p ...

只要内核一样,那么启动部分就差不多少。
我看了@haohao663的手册,写的很详细,学习了。
我也写过一个关于启动代码的帖子,摘录部分解楼主的疑惑:
“MCU上电并从flash启动后,首先从向量表中取得第一个成员:栈顶指针,并赋值给MSP寄存器;然后再取得向量表中的第2个成员Reset_Handler复位异常,并赋值给PC寄存器,这样MCU根据PC寄存器的内容就开始了程序的执行。
如果你的程序只用汇编代码编写程序,那么Reset_Handler处就是你编程开始的地方。”
我解释下,楼主第一条语句指定一个栈顶指针或者干脆直接写0x00或者任意(假设反正你又不用栈操作),第2条令写flash的起始地址,然后在该地址处存放程序就行了(这个麻烦点,你需要写一个汇编代码,来指出你的程序),这就是最简单的程序。当然都得用汇编写。最终发现你需要一个“启动文件”,但启动文件也可以简化到最小,那就是只有栈的定义、栈顶指针、复位向量和复位函数中直接开始操作LED灯的程序代码。如果用C语言特性,就复杂了,还是得要一个完整的启动文件。完整的启动如下图简单所示:
3.jpg
具体参考我的帖子:
http://jingyan.eeboard.com/article/version_preview/2119
mark0668 回答时间:2016-5-31 12:41:40
理论是这样吧,但你芯片还要初始化等等,
stary666 回答时间:2016-5-31 12:47:09
是这样的,
atmel.png
nxp.png
st.png
今日头条 回答时间:2016-5-31 15:47:58
应该吧~~
cxd0812 回答时间:2016-5-31 17:24:41
是这么回事,但是你这么写是肯定不行的,芯片大多数都不是从0地址跑的,一般从复位中断里出来,再跳一下,跳到你的程序代码上,再一个你写一个叫led的函数编译器也不给你过啊,得有main才行
Inc_brza 回答时间:2016-5-31 22:24:12
这样编译能通过我直播吃电脑,常量赋值给常量是几个意思呢?
beary 回答时间:2016-6-1 09:16:58
Inc_brza 发表于 2016-5-31 22:24
这样编译能通过我直播吃电脑,常量赋值给常量是几个意思呢?

打比方。
beary 回答时间:2016-6-1 09:18:19
cxd0812 发表于 2016-5-31 17:24
是这么回事,但是你这么写是肯定不行的,芯片大多数都不是从0地址跑的,一般从复位中断里出来,再跳一下, ...

嗯 我就是想问这个,他一开始是做向量表,向量表里有一个复位回调,回调函数跳到main,如果我那个复位的回调直接用这个东西替代,不知道行不行,现在下载进去了没反应- -
haohao663 回答时间:2016-6-1 09:36:09
STM32F1入门福利贴:基于HAL库/CubeMX软件的软硬件设计手册...
https://www.stmcu.org.cn/module/ ... &fromuid=331315
(出处: 意法半导体STM32/STM8技术社区)
我们写的文档,里边有重点介绍微控制器的启动过程,只不过是stm32的,不知道freescale的也是不是一样的启动过程,实际上如果是cortex-m内核的话就都是一样的
moyanming2013 回答时间:2016-6-1 11:15:51
Inc_brza 发表于 2016-5-31 22:24
这样编译能通过我直播吃电脑,常量赋值给常量是几个意思呢?

,我们看不到直播吃电脑了
对于存储器访问只能使用间接访问,直接写地址肯定不行。
12下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版