用一段汇编向一个固定地址写入一串字符?

[复制链接]
5193|12
 楼主| y607 发表于 2011-12-26 10:58 | 显示全部楼层 |阅读模式
现在要用汇编像一个固定地址写入一串字符,例如固定地址为0x00001000,写入一串字符"12345678",用汇编如何编写,C语言不行的。谢谢了
mcuisp 发表于 2011-12-26 12:20 | 显示全部楼层
本帖最后由 mcuisp 于 2011-12-26 12:37 编辑

C语言可以的。
我正要发这个应用笔记呢、、、
虽然是stm8的,但是IAR里STM32的做法也差不多
 楼主| y607 发表于 2011-12-26 12:40 | 显示全部楼层
我知道C可以的,但是这段代码必须要用汇编来写。放在启动文件里面
mcuisp 发表于 2011-12-26 12:53 | 显示全部楼层
汇编正规的做法也差不多,要在icf文件里定义段,然后去启动文件里引用段,再定义数组。
你可参考vector的定义来弄。

要注意0x00001000在stm32里是未明确定义的地址段。随启动条件不同,有不同意义。
 楼主| y607 发表于 2011-12-26 14:05 | 显示全部楼层
地址只是举个例子,确定的地址在0x0800000后面的某个地址
 楼主| y607 发表于 2011-12-26 14:18 | 显示全部楼层
有没有高手知道,我现在只需一段汇编代码,怎样向固定地址写入字符,汇编学的不是很好。
lxyppc 发表于 2011-12-27 09:06 | 显示全部楼层
一般汇编器都有这个功能,要看你所用的汇编器的说明书,里面会有詳細说明的
wangjun403 发表于 2011-12-27 11:11 | 显示全部楼层
DS不是好像有这个功能的吗?
 楼主| y607 发表于 2011-12-27 11:24 | 显示全部楼层
我需要在STM32的flash中的0x08001000处写入“12345678”,和在0x0802fff0处写入“87654321”烧入程序后这两处的地址的数据不会改变,用C不能搞定,从hex中看后面地址的代码有问题,所有现在只能从启动文件中添加汇编来写数据,相当于替代C中的一段宏定义。  
#define     shuju     (*((volatile unsigned long *)0x08000010))
shuu  = "12345678";
怎么用汇编来替代,现在觉得只能加到启动文件中,或者有什么好的方法,能解决这个问题。
 楼主| y607 发表于 2011-12-27 22:18 | 显示全部楼层
么人支持啊
静默 发表于 2011-12-28 09:22 | 显示全部楼层
1楼: "C语言不行的" ---- 我以为你必须用汇编写.
9楼: "用C不能搞定" ---- 原来是用C搞不定这个定义.

这就结了,
KEIL的代码(IAR俺不会, 不过一样可以处理):
const char gstrTest1[9] __attribute__((section(".ARM.__at_0x08001000"))) = {'1', '2', '3', '4', '5', '6', '7', '8', 0 };
const char gstrTest2[9] __attribute__((section(".ARM.__at_0x0802fff0"))) = {'8', '7', '6', '5', '4', '3', '2', '1', 0 };

HEX:
:101000003132333435363738000000002DE9FF4FD8 // 0x08001000

:0CFFF00038373635343332310000000061                 // 0x0802fff0
 楼主| y607 发表于 2011-12-28 10:33 | 显示全部楼层
楼上的谢谢了,这段代码我有,我想问的就是这段能否用汇编代替,用C不行的,Hex文件会出问题,用C不能搞定,Hex文件增加了很多无效空间,超出了固定的代码区。
静默 发表于 2011-12-28 13:41 | 显示全部楼层
本帖最后由 静默 于 2012-5-19 15:58 编辑

有这样的事, 可以把示例工程发给我, 我生成HEX文件.
哪会多出很多空间. 我的工程生成的HEX文件尾后几行.
:101D80000607080900A24A04000000000000000045
:101D9000010203040607080900000000000000001B
:020000040802F0
:0CFFF00038373635343332310000000061
:04000005080000ED02
:00000001FF
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

13

帖子

1

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