![](https://img-blog.csdnimg.cn/20210306142901955.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
嵌入式Linux
文章平均质量分 68
主要介绍嵌入式Linux概念相关
蒋钊锋
只写最精简、最工整的代码
展开
-
uboot源码分析-uboot启动流程
导读:本文以三星S5PV210的uboot为例,从源代码角度梳理uboot整个启动流程,参考了九鼎x210开发板官方uboot和朱有鹏老师相关文档。目录1、汇编阶段1.1 _start1.2 reset复位1.3 重定位1.4 after_copy1.5 lowlevel_init (补充)1.6 小结2、C语言阶段:init_sequence2.1 硬件初始化函数调用2.2 init_sequence函数指针数组成员2.3 小结3、C语言阶段:start_armboot剩余部分3.1 初始化flas.原创 2021-03-14 22:40:09 · 556 阅读 · 0 评论 -
uboot源码分析-uboot命令体系
导读:本文以S5PV210为例,从uboot源代码角度分析uboot命令体系架构,并举例说明如何在uboot代码中添加自己的命令。为了展示方便,文章中的代码有进行删减,主要删除了无效的宏定义,可能有误删。目录1、uboot命令结构体2、uboot如何解析命令2.1 main_loop主循环2.2 run_command执行命令2.3 find_comd查找命令3、如何添加自己定义的uboot命令3.1 添加命令举例3.2 U_BOOT_CMD宏定义说明3.3 补充1、uboot命令结构体每个ubo.原创 2021-03-20 10:35:29 · 784 阅读 · 0 评论 -
ARM嵌入式Linux裸机开发---异常、按键中断和定时器中断
导读:本文是裸机开发的第二篇,介绍裸机开发中断相关,介绍异常,按键中断,定时器中断,实现打印未定义指令异常,打印软中断异常,处理这些异常,然后使用定时器点亮LED灯效果,同时可以使用按键触发中断点亮LED。使用的开发板是基于韦东山老师的JZ2440,SOC是三星的S3C2440芯片,外接了SDRAM,nandFlash和NorFlash。目录1、start.S汇编代码2、main.c3、uart.c4、interrupt.c5、Makefile6、编译结果1、start.S汇编代码设置异常中断向量.原创 2021-03-08 22:21:19 · 491 阅读 · 0 评论 -
ARM嵌入式Linux裸机开发---汇编点亮LED
导读:目录1、 start.S汇编源代码2、main.c3、uart串口相关4、sdram.lds链接脚本5、Makefile6、编译结果:1、 start.S汇编源代码代码从_start标志处开始运行,start.S主要完成关看门狗,设置栈,设置时钟,初始化串口,初始化SDRAM,重定位,清除BSS以及实现流水灯效果//流水灯相关寄存器#define GPFCON 0x56000050#define GPFDAT 0x56000054//看门狗寄存器#define WTCON .原创 2021-03-07 21:32:52 · 550 阅读 · 0 评论 -
X86常用汇编指令
目录1、常用寄存器1.1 数据寄存器:ax、bx、cx、dx1.2 段寄存器 : cs、ds、es、ss1.3 地址寄存器1.4 控制寄存器2、常用命令2.1 mov movl2.2 push pop2.3 add addl sub subl2.4 call ret1、常用寄存器1.1 数据寄存器:ax、bx、cx、dxax(Accumulator):做累加器用,算数运算的主要寄存器bx(Base):基址寄存器cx(Count):计数器,循环用的多dx(data):双精度运算时与ax一起存放双操原创 2021-08-14 17:46:38 · 843 阅读 · 0 评论 -
imx6ull系统移植--uboot
导读:本文将介绍从NXP官方uboot开始移植uboot到正点原子Alfalfa开发板的实际操作步骤,使用的芯片是imx6ull,LCD屏幕为4.3寸800*480。目录1、添加自己的开发板1.1 添加配置文件1.2 添加板级头文件1.3 添加板级文件夹2、移植驱动1、添加自己的开发板1.1 添加配置文件在configs目录下新建配置文件vi configs/my_emmc_defconfig,输入以下内容 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/.原创 2021-04-11 15:59:06 · 727 阅读 · 0 评论 -
imx6ull系统移植--Linux内核
目录1、添加自己的开发板2、主频修改3、网络驱动修改1、添加自己的开发板cd arch/arm/configscp imx_v7_mfg_defconfig my_emmc_configcd arch/arm/boot/dtscp imx6ull-14x14-evk.dts my_emmc.dtsvi Makefile #arch/arm/boot/dts目录下的Makefile添加my_emmc.dtb \2、主频修改3、网络驱动修改...原创 2021-08-14 17:46:14 · 327 阅读 · 0 评论 -
Source Insight 4.0配置支持汇编-实现函数跳转
第一步:在官网下载arm汇编语言支持包ARM.CLF:https://www.sourceinsight.com/download/custom-languages/第二步:导入下载的文件:点击工具栏Options -> Preference -> Language -> Import然后选择刚刚下载的文件(对应下图的第三步)再新建一个文本文档,输入以下内容,在上图的第6步导入该文件!, Delimiter#, Delimiter%, Delimiter&, D原创 2021-03-11 22:21:17 · 918 阅读 · 1 评论 -
常用arm汇编指令-RISC指令集
目录1、读内存和写内存ldr,str2、算数运算指令mov,add,sub3、跳转指令b、bl4、比较和条件执行5、cpsr读写指令mrs,msr6、cp15协处理器读写mrc,mcr6、连续赋值7、^的作用8、标志申明1、读内存和写内存ldr,strldr r0, [r1] @读内存,r0等于r1所指向地址的值,相当于C语言r0 = *r1;str r0, [r1] @写内存,把r0的值存放到r1所指向的地址中,相当于C语言*r1 = r0ldr r1, [原创 2021-03-07 14:23:49 · 1231 阅读 · 0 评论 -
典型ARM嵌入式Linux设备启动流程-S3C2440,S5PV210,AM3352x
导读:本文将以主流学习芯片为例,梳理以下典型的嵌入式Linux设备的启动流程,目前比较流行的学习型芯片有S5PV210、S3C2440、IMX6ULL、STM32MP157目录1、S3C24402、S5PV2103、IMX6ULL4、STM32MP1571、S3C24402、S5PV2103、IMX6ULL4、STM32MP157...原创 2021-03-06 14:14:08 · 3135 阅读 · 9 评论 -
ARM嵌入式Linux硬件相关概念介绍---存储器相关
目录1、ARM版本号问题2、内存3、闪存Flash4、应用场景5、cache1、ARM版本号问题内核版本号SoC版本号芯片举例ARMv4ARM9S3C2440、S3C2410ARMv6ARM11S3C6410ARMv7Cortex-M,Cortex-A,Cortex-RS5PV210(Cortex-A8)Cortex-M一般为为单片机内核如STM32F103,Cortex-A系列一般用来跑Linux或安卓操作系统较为合适,Cortex-R系列一般用于航原创 2021-03-03 21:59:22 · 405 阅读 · 0 评论 -
有用的shell工具移植---rz,sz,flash_eraseall,ssh
shell命令工具移植rz&szflash_eraseall移植sshrz&sz首先需要在官网下载rz和sz源码tar zxvf lrzsz-0.12.20.tar.gz #解压源码cd lrzsz-0.12.20/ #进入源码目录./configure #添加默认配置make CC=arm-linux-gcc #编译器版本必须和编译内核时的版本一致编译后,将src/lsz, src/lrz文件添加到开发板上的/usr/bin目录,并重命名为sz原创 2021-03-02 15:24:39 · 428 阅读 · 0 评论 -
嵌入式Linux开发环境搭建-Ubuntu
目录软件下载1、卸载office办公软件2、卸载Amazon购物软件3、安装VMware tools4、安装nfs5、安装arm-linux-gcc6、安装busybox支持库软件下载VMware Workstation下载Ubuntu镜像下载1、卸载office办公软件 sudo apt-get remove libreoffice-calc sudo apt-get remove libreoffice-draw sudo apt-get remove libreoffice-impres原创 2021-03-01 14:28:15 · 1128 阅读 · 5 评论