OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8636|回复: 19

分享一个用汇编写的点亮战舰LED

[复制链接]

24

主题

192

帖子

0

精华

高级会员

Rank: 4

积分
504
金钱
504
注册时间
2016-3-16
在线时间
205 小时
发表于 2017-3-17 17:40:57 | 显示全部楼层 |阅读模式
    汇编在系统运行起来之前,起到引导作用,汇编对于Bootloader来说是至关重要的,本人纯汇编小白,通过三天的各种摸索,终于在MDK5中写出了第一个汇编程序,点亮战舰板上的两盏LED灯,第一次用汇编写程序的可以看看,少走一些弯路。 Asm.zip (24.5 KB, 下载次数: 377)
路漫漫其修远兮,戒骄戒躁。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2017-3-18 15:18:09 | 显示全部楼层
回复 支持 反对

使用道具 举报

39

主题

174

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
450
金钱
450
注册时间
2017-1-17
在线时间
76 小时
发表于 2017-3-18 16:26:14 | 显示全部楼层
666汇编都可以啊
回复 支持 反对

使用道具 举报

24

主题

192

帖子

0

精华

高级会员

Rank: 4

积分
504
金钱
504
注册时间
2016-3-16
在线时间
205 小时
 楼主| 发表于 2017-3-19 16:24:00 | 显示全部楼层
路漫漫其修远兮,戒骄戒躁。
回复 支持 反对

使用道具 举报

24

主题

192

帖子

0

精华

高级会员

Rank: 4

积分
504
金钱
504
注册时间
2016-3-16
在线时间
205 小时
 楼主| 发表于 2017-3-19 16:24:26 | 显示全部楼层

汇编为毛不可以  
路漫漫其修远兮,戒骄戒躁。
回复 支持 反对

使用道具 举报

meiyl17 该用户已被删除
发表于 2017-3-19 21:04:22 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

69

主题

978

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3774
金钱
3774
注册时间
2015-4-26
在线时间
766 小时
发表于 2017-3-19 21:35:30 | 显示全部楼层
不信汇编比C好用,6楼吹破天
我有故事,你有酒吗
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2017-3-19 21:59:18 | 显示全部楼层

好几年不用汇编了
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

24

主题

192

帖子

0

精华

高级会员

Rank: 4

积分
504
金钱
504
注册时间
2016-3-16
在线时间
205 小时
 楼主| 发表于 2017-3-21 08:58:49 | 显示全部楼层
meiyl17 发表于 2017-3-19 21:04
本人也是使用汇编语言,十多年了,不会用C,共勉

哈哈~~  本人其实是ARM平台C/C++程序员,汇编是因为BootLoader引导Linux需要~~ 有不明白的地方还要请教大神哦~
路漫漫其修远兮,戒骄戒躁。
回复 支持 反对

使用道具 举报

24

主题

192

帖子

0

精华

高级会员

Rank: 4

积分
504
金钱
504
注册时间
2016-3-16
在线时间
205 小时
 楼主| 发表于 2017-3-21 08:59:56 | 显示全部楼层
来俩不甜的 发表于 2017-3-19 21:35
不信汇编比C好用,6楼吹破天

在某些地方汇编的效率真是C/C++不能做到的。为毛要编程语言战争,他们反正最后不都是转成机器码嘛
路漫漫其修远兮,戒骄戒躁。
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2017-4-23
在线时间
5 小时
发表于 2017-4-23 23:49:02 | 显示全部楼层
楼主666,我也挺喜欢用汇编,刚学习stm32不久,今天花了一下午时间用汇编写led的工程,就是没成功,不知道你的keil环境是怎么配置的
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2017-4-23
在线时间
5 小时
发表于 2017-4-23 23:50:13 | 显示全部楼层
还有啊,你的芯片是407,还是107啊
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2017-4-23
在线时间
5 小时
发表于 2017-4-24 12:25:08 | 显示全部楼层
我的mdk无法下载axf文件啊,我觉得可能是我的mdk配置有问题,楼主能帮我分析一下吗,我用的是f407探索者
无标题.jpg
回复 支持 反对

使用道具 举报

24

主题

192

帖子

0

精华

高级会员

Rank: 4

积分
504
金钱
504
注册时间
2016-3-16
在线时间
205 小时
 楼主| 发表于 2017-4-26 15:38:15 | 显示全部楼层
西格学院 发表于 2017-4-24 12:25
我的mdk无法下载axf文件啊,我觉得可能是我的mdk配置有问题,楼主能帮我分析一下吗,我用的是f407探索者

有可能是你的路径太深了,或者你没编译?Link配置正确了没有?
路漫漫其修远兮,戒骄戒躁。
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2017-4-23
在线时间
5 小时
发表于 2017-4-28 15:00:36 | 显示全部楼层
EAON 发表于 2017-4-26 15:38
有可能是你的路径太深了,或者你没编译?Link配置正确了没有?

已经好了,是汇编入口的问题,我把你的入口加上去就好了
还有一些问题(以下是你的入口函数)
AREA    STACK, NOINIT, READWRITE, ALIGN=3
__initial_sp
                                             
        AREA    RESET, DATA, READONLY
        DCD     __initial_sp               ; Top of Stack
    DCD     Reset_Handler              ; Reset Handler
                       
    AREA    |.text|, CODE, READONLY  
Reset_Handler\
        PROC
    EXPORT  Reset_Handler             [WEAK]

我想问一下为什么要定义两个区域,他们的地址不一样的,还有一样的,如果不一样是不是连续的,我用keil的调试工具试了一下,发现cpsr寄存器中的T标志位为1(此位为1表示Thumb指令),这是问什么,芯片不是一开始就是运行的arm指令吗,还有啊,我想用ADD指令访问PC,编译器却报错,不能使用PC寄存器,有没有办法修改一下编译器的报错规则,让他忽略掉。
回复 支持 反对

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6662
金钱
6662
注册时间
2016-5-29
在线时间
910 小时
发表于 2017-4-28 15:55:43 | 显示全部楼层
玩汇编会被多字节数据计算整死.
回复 支持 反对

使用道具 举报

24

主题

192

帖子

0

精华

高级会员

Rank: 4

积分
504
金钱
504
注册时间
2016-3-16
在线时间
205 小时
 楼主| 发表于 2017-5-3 08:07:58 | 显示全部楼层
操作系统 发表于 2017-4-28 15:55
玩汇编会被多字节数据计算整死.

没办法,谁让Linux Kernel启动之前要先汇编初始化时钟,堆,栈呢。。。不玩也得玩
路漫漫其修远兮,戒骄戒躁。
回复 支持 反对

使用道具 举报

24

主题

192

帖子

0

精华

高级会员

Rank: 4

积分
504
金钱
504
注册时间
2016-3-16
在线时间
205 小时
 楼主| 发表于 2017-5-3 08:09:43 | 显示全部楼层
西格学院 发表于 2017-4-28 15:00
已经好了,是汇编入口的问题,我把你的入口加上去就好了
还有一些问题(以下是你的入口函数)
AREA     ...

标准汇编我玩得不6,我玩GNU汇编的。可能还是有一些差别的。
路漫漫其修远兮,戒骄戒躁。
回复 支持 反对

使用道具 举报

41

主题

242

帖子

0

精华

高级会员

Rank: 4

积分
523
金钱
523
注册时间
2016-1-11
在线时间
132 小时
发表于 2017-5-3 08:18:31 | 显示全部楼层
楼主666,用在stm32上用汇编写个贪吃蛇吧。
回复 支持 反对

使用道具 举报

24

主题

192

帖子

0

精华

高级会员

Rank: 4

积分
504
金钱
504
注册时间
2016-3-16
在线时间
205 小时
 楼主| 发表于 2017-5-5 10:20:01 | 显示全部楼层
沧海 发表于 2017-5-3 08:18
楼主666,用在stm32上用汇编写个贪吃蛇吧。

用汇编写大项目完全就是再给自己找罪受。
路漫漫其修远兮,戒骄戒躁。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-8-21 16:54

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表