韦东山005_ARM裸机1期加强版
005_ARM裸机1期加强版(又叫新1期,151节,23节免费,已完结)\新1期视频(151节,23节免费)
第006课开发板熟悉与体验(6节,免费)
第001节_开发板部件介绍与串口连接(免费)
如果win不自动安装驱动程序(PL2303_Prolific_DriverInstaller_v1.7.0.exe)
软件打开COM3远程登录工具()
第002节_使用eop烧写裸板程序(免费)
F:\arm\OpenOCDwithGUIsetup\bin oflash.exe 烧写所有的bin文件
U-boot.bin 可以烧写Nor,NAND
leds.bin只能NAND
启动选择开关
**烧写U-boot.bin到Nor,见图04-03_22-35-23-932.png
第003节_eop常见问题(免费)
第004节_使用uboot烧写裸板程序(免费)
使用uboot通过USB下载烧写leds.bin文件
Nor启动,uboot运行
使用uboot的usb下载功能
uboot收到文件,再烧到Nand
Nand启动,重新上电,运行bin文件
第005节_恢复出厂系统(免费)
第006节_一句话解决嵌入式开发ping问题(免费)
**ubuntu 更改IP命令 sudo ifconfig ens33 192.168.11.123
**tftp下载
**必须使用新的u-boot
U-Boot 1.1.6 **enable Ethernet alltime**(May 15 2018 - 19:44:59)
第007课_裸机开发步骤和工具使用(3节,免费))
第001节_裸机开发步骤简介(免费)
第002节_source insight代码查看工具的使用(免费)
第003节_notepad编辑器和二进制文件查看工具(免费)
第008课_第1个ARM裸板程序及引申(10节,前三节免费)
第001节_辅线1_硬件知识_LED原理图
第002节_辅线1_硬件知识_S3C2440启动流程与GPIO操作(免费)
**当Nor启动时,NorFlash基地址为0,片内RAM地址为0x4000,0000
**当NAND启动时,片内4K RAM地址为0,把NAND的前4K复制到片内RAM,NorFlash不可访问
第003节_编写第1个程序点亮LED(免费)
**LDR读内存:LDR R0,[R1] //设R1的值为x,读取地址x上的数据(4字节),保存到R0中
**STR写内存:STR R0,[R1] //设R1的值为x,把R0的值写到地址x去(4字节)
**B跳转:
**MOV:
MOV R0,R1 //1的值赋给R0,R0=R1
MOV R0,#0x100 //R0等于0x100
**LDR:伪指令
LDR R0,=0x12345678 //不存在这样的指令,会被拆分为几条真正ARM指令
//一个arm指令32位,肯定有某些位表示MOV本身
*led_on.S
/
* 点亮LED1: gpf4
*/
.text
.global _start
_start:
/* 配置GPF4为输出引脚
* 把0x100写到地址0x56000050
*/
ldr r1, =0x56000050
ldr r0, =0x100 /* mov r0, #0x100 */
str r0, [r1]
/* 设置GPF4输出高电平
* 把0写到地址0x56000054
/
ldr r1, =0x56000054
ldr r0, =0 / mov r0, #0 */
str r0, [r1]
/* 死循环 */
halt:
b halt
**Makefile
all:
arm-linux-gcc -c -o led_on.o led_on.S
arm-linux-ld -Ttext 0 led_on.o -o led_on.elf
arm-linux-objcopy -O binary -S led_on.elf led_on.bin
arm-linux-objdump -D led_on.elf > led_on.dis
clean:
rm *.bin *.o *.elf
**led_on.dis
led_on.elf: file format elf32-littlearm
Disassembly of section .text:
00000000 <_start>:
0: e59f1014 ldr r1, [pc, #20] ; 1c <.text+0x1c>
4: e3a00c01 mov r0, #256 ; 0x100
8: e5810000 str r0, [r1]
c: e59f100c ldr r1, [pc, #12] ; 20 <.text+0x20>
10: e3a00000 mov r0, #0 ; 0x0
14: e5810000 str r0, [r1]
00000018 <halt>:
18: eafffffe b 18 <halt>
1c: 56000050 undefined
20: 56000054 undefined
**led_on.bin
14 10 9f e5 01 0c a0 e3 00 00 81 e5 0c 10 9f e5
00 00 a0 e3 00 00 81 e5 fe ff ff ea 50 00 00 56
54 00 00
**第004节_汇编与机器码_P
pc Proglam Counter = 当前指令加 8
lr 返回地址
sp 栈指针
修改led_on.S点亮LED2
直接修改led_on.bin点亮LED2 **MOV指令12位怎么表示一个立即数,其中最低8位称为immed_8,高4位称为rotate_imm。
就是说,一个立即数0x56000000,循环左移,如果可以得到一个用8位位图表示的数,则该立即数0x56000000是一个合法的立即数;否则,该立即数不合法。
高四位:2^4=16,要想表示移位范围为0-31,则每次最少移动2位,即,右移的最小单位为2.这样,2*16就可以表示最多32位的移动。
第005节_编程知识_进制_P
第006节_编程知识_字节序_位操作_P
第007节_编写C程序控制LED_P
第008节_几条汇编指令_bl_add_sub_ldm_stm_P
第009节_解析C程序的内部机制_P
第010节_完善LED程序_编写按键程序_P
&= 意思为:按位与后赋值
/* 设置GPFCON让GPF4/5/6配置为输出引脚 */
*pGPFCON &= ~((3<<8) | (3<<10) | (3<<12));
*pGPFCON |= ((1<<8) | (1<<10) | (1<<12));
第009课_gcc和arm-linux-gcc和Makefile(8节)
第001节_gcc编译器1_gcc常用选项__gcc编译过程详解_P
gcc常用选项:
-v:查看gcc编译器的版本,显示gcc执行时的详细过程
-o Place the output into
指定输出文件名为file,这个名称不能跟源文件名同名
-E Preprocess only; do not compile, assemble or link
只预处理,不会编译、汇编、链接
-S Compile only; do not assemble or link
只编译,不会汇编、链接
-c Compile and assemble, but do not link
编译和汇编,不会链接
gcc -E -o hello.i hello.c
gcc -S -o hello.s hello.i
gcc -c -o hello.o hello.s
gcc -o hello hello.o
第002节_gcc编译器2_深入讲解链接过程_P
第003节_c语言指针复习1__指向char和int的指针_P
第004节_c语言指针复习2_指向数组和字符串的指针_P
第005节_Makefile的引入及规则_P
第006节_Makefile的语法_P
第007节_Makefile函数_P
第008节Makefile实例P
第010课_掌握ARM芯片时钟体系(2节)
第001节_S3C2440时钟体系结构_P
第002节_编程提高运行时钟_P
第011课_串口(UART)的使用(5节)
第001节_辅线1_硬件知识_UART硬件介绍_P
第002节_S3C2440_UART编程_P
第003节_从零实现用于裸机调试的printf函数_手动确定可变参数_P
第004节_从零实现用于裸机调试的printf函数_自动确定可变参数_P
第005节_从零实现用于裸机调试的printf函数_printf函数在x86和arm平台的实现_P
第012课_内存控制器与SDRAM(4节)
第001节_辅线1_硬件知识_内存接口概念_P
第002节_辅线1_硬件知识_不同位宽设备的连接_P
第003节_辅线1_硬件知识_时序图分析示例_P
第004节_辅线1_硬件知识_SDRAM的设置_P
第013课_代码重定位(6节)
第001节_段的概念_重定位的引入_P.zip
第002节_链接脚本的引入与简单测试_P.zip
第003节_链接脚本的解析_P.zip
第004节_拷贝代码和链接脚本的改进_P.zip
第005节_代码重定位与位置无关码_P.zip
第006节_重定位_清除BSS段的C函数实现_P.zip
第014课_异常与中断(8节)
第001节_概念引入与处理流程_P.zip
第002节_CPU模式(Mode)_状态(State)与寄存器_P.zip
第003节_不重要_Thumb指令集程序示例_P.zip
第004节_und异常模式程序示例_P.zip
第005节_swi异常模式程序示例_P.zip
第006节_按键中断程序示例_概述与初始化_P.zip
第007节_按键中断程序示例_完善_P.zip
第008节_定时器中断程序示例_P.zip
第015课_NOR Flash(3节)
第016课_Nand Flash(5节)
第017课_LCD(11节)
第018课_ADC和触摸屏(12节)
第019课_I2C(7节)
第020课_SPI(7节)
第021课_MMU和Cache(4节)
第022课_传感器(9节)
H:\韦东山Android\006_u-boot_内核_根文件系统(新1期_2期间的衔接)\视频
第001课_U-boot分析与使用
第001节_u-boot分析之编译体验
**U-boot的主线目标功能是
从flash中读出内核,放到内存SDRAM中,启动内核。
1. 读Flash
2. 初始化SDRAM
初始化时钟
关看门狗
3. 启动内核
附加功能:
写Flash
初始化串口
网卡
USB
第003课_内核配置裁剪及启动流程
第001节_内核启动流程分析之编译体验
第002节_内核启动流程分析之配置
第004课_根文件系统
第001节_构建根文件系统之启动第1个程序
第002节_构建根文件系统之init进程分析
第003节_构建根文件系统之busybox
第004节_构建根文件系统之构建根文件系统
第001节_字符设备驱动程序之概念介绍.mp4
第002节_字符设备驱动程序之LED驱动程序_编写编译
主设备号:
Linux的设备管理是和文件系统紧密结合的,各种设备都以文件的形式存放在/dev目录下,称为设备文件。应用程序可以打开、关闭和读写这些设备文件,完成对设备的操作,就像操作普通的数据文件一样。为了管理这些设备,系统为设备编了号,每个设备号又分为主设备号和次设备号。主设备号用来区分不同种类的设备,而次设备号用来区分同一类型的多个设备。对于常用设备,Linux有约定俗成的编号,如硬盘的主设备号是3。
一个字符设备或者块设备都有一个主设备号和次设备号。主设备号和次设备号统称为设备号。主设备号用来表示一个特定的驱动程序。次设备号用来表示使用该驱动程序的各设备。例如一个嵌入式系统,有两个LED指示灯,LED灯需要独立的打开或者关闭。那么,可以写一个LED灯的字符设备驱动程序,可以将其主设备号注册成5号设备,次设备号分别为1和2。这里,次设备号就分别表示两个LED灯。
第003节_字符设备驱动程序之LED驱动程序_操作LED
- 操作虚拟地址,虚拟地址怎么来,用ioremap()地址的映射,把虚拟地址映射成虚拟地址。
第004节_字符设备驱动程序之LED驱动程序_测试改进
- mdev根据系统信息创建设备节点
第005节_字符设备驱动程序之查询方式的按键驱动程序
韦东山005_ARM裸机1期加强版的更多相关文章
- 韦东山ARM裸机笔记(2)--vi编辑器
VI编辑器(Visual Interface--可视化接口) 一.Linux下的一个文本编辑器,所具备的基本功能: 打开.新建.保存文件 光标移动 文本编辑 (多行间 | 多列间)复制.粘贴.删除 查 ...
- 韦东山ARM裸机笔记(1)
1.一个嵌入式Linux系统的软件组成:单片机大全Bootloader-->Linux驱动-->Linux APP-->Linux GUI(Android/QT) 2.驱动程序=软件 ...
- 韦东山yy公开课笔记(1)--各种杂的问题
1,第四期的智能猫眼会有打电话和发短信的功能吗? 答:会有打电话功能,硬件上支持打电话就会支持发短信,只是软件上是否实现发短信现在未定.因为短信延迟太严重,不是可靠的. 2,请问关于makefil ...
- 作为一个新人,怎样学习嵌入式Linux,(韦东山)
很早以前在网上看到的韦东山老师写的文章,复制到自己的博客,方便自己以后看. 在学习嵌入式Linux之前,肯定要有C语言基础.汇编基础有没有无所谓(就那么几条汇编指令,用到了一看就会). C语言要学到什 ...
- (转)作为一个新人,怎样学习嵌入式Linux?(韦东山)
被问过太多次,特写这篇文章来回答一下. 在学习嵌入式Linux之前,肯定要有C语言基础.汇编基础有没有无所谓(就那么几条汇编指令,用到了一看就会).C语言要学到什么程度呢?越熟当然越好,不熟的话也 ...
- 作为一个新人,怎样学习嵌入式Linux?(韦东山)
这篇文章是引用韦老师的部分关于新人怎么学习嵌入式Linux的经验,引用如下: 1.电脑一开机,那些界面是谁显示的?是BIOS,它做什么?一些自检,然后从硬盘上读入windows,并启动它. 类似的, ...
- 专访Linux嵌入式开发韦东山操作系统图书作者--转
CSDN学院讲师韦东山:悦己之作,方能悦人 发表于2015-04-28 08:09| 6669次阅读| 来源CSDN| 24 条评论| 作者夏梦竹 专访Linux嵌入式开发韦东山操作系统图书作者 摘要 ...
- 移植最新u-boot(裁剪和修改默认参数)之韦东山笔记
1.下载.建立source insight工程.编译.烧写.如果无运行分析原因 tar xjf u-boot-2012.04.01.tar.bz2 cd u-boot-2012.04.01 make ...
- 韦东山 第9课第1节.u-boot分析之编译体验 http://www.100ask.net/index.html
http://www.100ask.net/index.html 韦东山官网网址 http://wenku.baidu.com/view/ae78a00390c69ec3d5bb75ce.html h ...
- 韦东山嵌入式Linux学习笔记02--如何给开发板烧录程序
购买韦东山嵌入式开发板jz2440 v3会标配两根usb线和一根网线,OpenJtag需要单独购买, 我暂时还没买到该工具. 下面介绍usb烧录以及通过网线烧录程序. 1.usb烧录程序: 借助DNW ...
随机推荐
- ORACLE查看会话的大小及终止会话
一.出现PGA不足时,我们可以查看用户会话大小,结束相应会话 方法一 Select Server, Osuser, Name, Value / 1024 / 1024 Mb, s.Sql_Id, Sp ...
- MySQL 打开慢查询 主从同步状态
MySql 打开慢查询 set global log_output='FILE'; SET GLOBAL slow_query_log = ON; SET GLOBAL long_query_time ...
- Nginx 配置https的单向或双向认证
一.自制https认证证书 1. 制作CA证书 A. 生成CA私钥:openssl genrsa -des3 -out ca.key 2048,注意要输入两次密码,若去除密码使用openssl rsa ...
- cookie和session、token的区别
原作者:施杨(施杨's Think out)出处:http://shiyangxt.cnblogs.com ************** 本文版权归原作者和博客园共有,欢迎转载,转载请保留该申明 ** ...
- 全文检索引擎:solr lucene
solr在lucene外边做了一层厚厚的封装,主要是为了简化二次开发,提供了一些成熟的解决方案. Lucene是全文检索是对索引中Document的各field进行匹配,可返回document,得到查 ...
- Ubuntu linux下gcc、g++不同版本的安装和切换
讲解linux下gcc.g++不同版本的安装和切换 Ubuntu 18.04预装GCC版本为7.3,但有时在编译是需要用的不同gcc版本,下面介绍,如何安装不同的gcc 和g++,并设置根据不同的需要 ...
- vue表单校验限制输入数字后小数点两位(包括避开通过中文输入法的那些坑)
<el-form-item label="海运运费系数"> <el-input v-model.trim="ruleForm.oceanFreightC ...
- 2022/7/28 第七组陈美娜 API类
API:Application Program Interface应用程序接口 JDK给我们提供的一些已经写好的类,可以直接调方法来解决问题 类的方法在宏观上都可以称为接口 接口:1.interfac ...
- Spring-IoC中Set和构造器注入
新建Maven工程 修改pom文件 1 <?xml version="1.0" encoding="UTF-8"?> 2 <project x ...
- Pycharm 2021.3 的激活破解教程,永久激活,亲测有效
关注公众号回复 pycharm 即可获取激活脚本和教程 更新时间 2022年1月20日. 不定时更新 激活码可在公众号中回复[激活码]获取.