开发背景:系统:ubuntu18.04系统
开发板:mini2440 串口连接工具 J-link连接工具
工具:secureCRT J-link
本次学习基于韦东山老师的嵌入式linux应用开发手册书,结合友善之臂给出的官方资料以及申嵌视频中的一些知识。
day1完成的主要工作就是编写mini2440开发的键盘点亮led灯的裸机程序,并下载到nandflash中,在开发板中成功运行。本次学习中遇到主要的问题有:
一、用汇编语句编写点亮led灯时,对汇编语句不是很熟悉,将韦老师书中的ARM的指令作了简单的概括如下:
1、相对跳转指令:b、bl
两个指令的不同之处,b直接跳转,bl除了跳转外还将返回下一条指令的地址。
具体示例:
b fun1

fun1:
b1 fun2

fun2:

2、数据传送指令mov,地址读取伪指令ldr
伪指令(Pseudo instruction)是用于告诉汇编程序如何进行汇编的指令。
它既不控制机器的操作也不被汇编成机器代码,只能为汇编程序所识别并指导汇编如何进行
mov指令主要是寄存器的赋值(可以是寄存器的值也可以是常数)
ldr伪指令标志(参数前面有=)主要用来读取地址
3、内存访问指令:ldr、str、ldm、stm
ldr指令从内存中读取数据到寄存器中 str把寄存器数据存储到内存中
ldr r1,[r2,#4] /将地址r2+4的内存中的数据读取到r1寄存器中/
ldr r1,[r2] /将地址为r2的内存中的数据读取到r1寄存器中/
ldr r1,[r2],#4 /将地址为r2的内存中的数据读取到r1寄存器中,r2=r2+4/
str指令操作相反
4、加减指令:add、sub
add r1, r2, #1 r1=r2+1;
sub r1, r2, #1 r1=r2-1;
5、程序状态寄存器访问指令:msr、mrs
控制处理arm处理器中的程序状态寄存器(cprs),用来控制处理器的工作模式,设置中断总开关
msr cpsr, r0 复制r0到cprs中
mrs r0, cpsr 复制cpsr到r0中
6、其他伪指令:
.extern定义一个外部符号(变量或函数)
.text表示下面是代码段
.global 将文件中的某个程序标号定义为全局
二、裸机开发程序生成好的.bin文件如何下载到开发板中:
针对这个问题在网上找了很多资料,网上提供的方法较多,但不同的电脑由于系统或者其他问题并不能够通用,本次我用的是申嵌视频中提到的J-LINK下载u-boot.bin到nandflsh的方法,具体步骤如下:
连接好开发板与电脑(包括J-LINK连接与串口连接),打开到nandflash端启动
上电后打开安装的jlink连接工具中的J-COMMANDER软件
1、在打开的软件中输入r,回车,确保找到CPU(如果后续出现CPU is not halted,可能就是没有r)
2、speed 12000设置下载速度
3、下载并运行init.bin文件(如果有人没有的话,可以在最下方的百度云链接中下载)具体语句:loadbin d:\init.bin 0 (d:\代表存放的路径)
setpc 0
g
4、下载uboot.bin_openjtag至SDRAM中
h
loadbin d:\uboot.bin_openjtag 0x33f80000
setpc 0x33f80000(如果没有出现问题会听到蜂鸣器响一声)
g
5、下载自己编译好的led_key.bin
h
loadbin d:\led_key.bin 0x30000000
g
并没有结束,打开secureCRT连接上端口,如果端口正常连接的话会出现openjtag的一个输入,在里面依次输入以下语句:
nand scrub
在出现提示后输入y(输入后直接回车就可以,屏幕不会显示)
nand erase 0 30000
nand write.jffs2 30000000 0 30000
完成上诉操作后,拔掉jlink接口重启就可以。
三、具体的mini2440的键盘控制led灯的程序
裸机键盘控制led的程序: https://github.com/yantu711/mini2440-----/tree/master
百度网盘连接:https://pan.baidu.com/s/1J4sJa-8tc7CJzcDRYvujiQ 提取码:7vvt

上诉文章为自己学习中遇到的问题解决的办法,有一些是借助于网上各位老师的经验,如有任何问题请联系删除。

mini2440开发板学习裸机开发——day1 裸机运行LED灯程序相关推荐

  1. 在ARM开发板的嵌入式linux系统上运行的QT程序,必须得要在linux里用QT编吗

    https://blog.csdn.net/weixin_36060730/article/details/78359300

  2. 嵌入式系统实验——【玄武F103开发板】按key1熄灭两个LED灯、松开恢复点亮

    这里写目录标题 一.任务目标 (一)分析 二.设计思路 (一)开启`KEY1`对应的`GPIOx`时钟 1.找到`KEY1(PE3)`所在的`GPIOx`端口 2.开启`GPIOE`端口时钟 3.清空 ...

  3. 用stm32开发时是直接买现成的开发板还是芯片?开发板学习,芯片硬件设计

    视情况而言,买开发板用于评估和学习,然后买芯片做硬件设计 开发板 开发板上手即可使用,并附带很多模块. 拿到开发板后即可直接根据开发板提供的原理图进行程序编写,学习. 优点:简单快捷,上手快,拿到手就 ...

  4. 海思SD3403开发板学习(二)

    海思SD3403开发板学习系列:二 配置基础环境 文章目录 海思SD3403开发板学习系列:二 配置基础环境 前言 一.交叉编译工具安装 1. 工具链名 1. 安装 二.NFS挂载 1.安装NFS 2 ...

  5. 【STM32 .Net MF开发板学习-02】GPIO测试

    前段时间我借用市面上现成的Corex-M3开发板,打造了最低价的.Net Micro Framework开发板(参见<免费发放firmwave,打造史上最低价.Net MF开发板>),在此 ...

  6. 阿里云HaaS100物联网开发板学习笔记(六)做个智能灯---一个完整的开发例子

    摘要:本篇文章将前期几个专题综合起来,基于阿里云HaaS100的新固件设计制作一个智能灯.这个智能灯由云平台.手机APP端和设备端组成,基本上涵盖了一个物联网小项目所需的主要步骤. 目录 1.在阿里云 ...

  7. 阿里云HaaS100物联网开发板学习笔记(二)硬件控制初步--让小灯闪烁起来

    摘要:无论是哪种开发板,要想开发特定的功能,必先从GPIO开始,HaaS100开发也是一样.如果仅仅利用HaaS100的联网功能,那简直是太浪费了.HaaS100拥有其他开发板所具备的所有的功能,比如 ...

  8. 阿里云HaaS100物联网开发板学习笔记(四)轻应用初步--用javascript连接阿里云物联网平台

    摘要:本篇文章讲解如何使用JavaScript"轻应用"连接阿里云物联网平台并上报一个数据.仍然延续前几篇文章的结构,从安装软件环境开始讲,以使零基础的同学看了本篇文章之后,也能够 ...

  9. 阿里云HaaS100物联网开发板学习笔记(三)轻应用初步--用js让小灯闪烁起来

    摘要:能让JavaScript应用运行在haas100开发板上,这实在是太酷了,这种方式被阿里云称之为"轻应用".本文带各位从零开始,先了解啥是轻应用,然后搭建环境,再一步步将一个 ...

最新文章

  1. 先搞懂这八大基础概念,再谈机器学习入门!
  2. linux nginx svn 更新前端代码
  3. java编译后生成字节码_请问java源文件编译后怎么生成字节码文件?
  4. Spring MVC应用程序中的Thymeleaf模板布局,无扩展
  5. java改变实参_java中引用传递问题,在函数中修改引用的指向,会不会影响实参?...
  6. 54.原型3 移动端选择器 (未完)
  7. python一个对象只能被一个变量引用吗_Python中的变量、对象、引用
  8. MDaemon12.X特殊注意事项和新功能
  9. Opencv中Get2D()与cvSet2D() 的坐标问题
  10. python 接收邮件服务器地址_python登录pop3邮件服务器接收邮件的方法
  11. 3DS MAX 批量导出文件脚本 MAXScript 带界面
  12. 虚拟现实技术虚拟校园解决方案
  13. MTK 增加Factory模式命令
  14. 教你寫代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!
  15. 东汉唯物主义哲学家——王充
  16. 基于word2vec的QA demo
  17. 用python turtle画人_家里蹲太孤单?用 Python 画一只单身狗
  18. Anker推出Security SmartTrack卡,详谈苹果Find My技术
  19. Linux虚拟机遇到的一些问题
  20. 社旗一高2021高考成绩查询,2021年九师联盟:河南/山西省高三年级下学期5月联考分数线公布!...

热门文章

  1. 如何设置win10登录不需输入开机密码_?win10开机密码取消的方法
  2. CentOS-7.5下使用yum命令快速安装Docker CE
  3. linux命令详解--eval
  4. vue--富文本插件Quill(一)基础使用
  5. 无限风光 : 近来地形算法学习小结
  6. 第6章 实战电影公众号 6-1 第六天简介
  7. Type-C、PD原理(二)
  8. 常见签名算法之SHA256withRSA
  9. Android AR开发实践之四:基于Sceneform的ARcore开发实例
  10. 保姆级教程超硬核包会,SystemVerilog SV 覆盖率