自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 [RPi bring up] 从树莓派linux源码中窥探bcm2835和arm1176jzfs的中断管理

第一种,board/raspberrypi/post-image.sh脚本会先检测有没有文件board/raspberrypi/genimage-${BOARD_NAME}.cfg,如果没有就用模板board/raspberrypi/post-image.sh生成一个临时的配置文件output/images/genimage.cfg。generic_handle_irq调用irq_to_desc(irq)找到对应的中断描述,irq_desc在内核中的数据结构实现是基数树Radix Tree,

2023-10-30 21:54:40 145 1

原创 [RPi bring up] 树莓派实现简单的内存管理

一个完善的内存管理需要考虑很多failover,缓存、tlb、page replacement等诸多功能,导致实际中使用的内存管理系统非常复杂。为此,我决定我的内存管理从设计开始就极度简化,只实现最基础的功能。

2023-06-02 15:33:22 174

原创 [RPi bring up] 深入树莓派内部,arm汇编语言精粹(下)

很多教程在刻意回避底层架构与操作系统之间的关联,只讲简单的应用程序,ARM核心本身就是一座大山,本文粗略介绍了ARMv6底层架构和相应的汇编操作,帮助入门者有更全面的认识。另外,ARMv6是个非常成熟的架构,其中有很多细节和机制帮助完成故障恢复failover、性能performace、权限permission control。例如barrier、cache、TLB等等,这些内容也同样值得深入探讨研究。参考ARMv7ARM。

2023-04-02 02:18:43 153

原创 [RPi bring up] 深入树莓派内部,arm汇编语言精粹(上)​

thumb指令集是arm32指令集的一个子集,指令长度16bit,它的指令和32位arm指令是对应的,这样设计的目的是为了实现更高的代码密度code density。汇编的本质就是32bit二进制指令的助记符,一行一行的汇编指令对应的恰好是一个一个计算机能理解的32bit数字,我们需要用GNU Binutils的两个工具帮助从汇编生成二进制文件。以上是我对arm(应用程序)汇编的总结,比起高级语言,汇编本身就是一个不太友好的语言,所以本文略显罗嗦和乏味。知道的太少,不懂的太多。我们首先要理清几个概念。

2023-01-09 01:09:16 272

原创 [RPi bring up] 给树莓派写一个bootloader! - 像使用arduino一样给树莓派下载程序

在平时对树莓派的底层系统开发时,我需要频繁的替换kernel.img来对kernel进行更新调试。这个过程非常的枯燥麻烦,sd卡插不紧还会接触不良,有时候为了一个很小的改动要折腾半天。长期的插拔sd卡,也会显著降低sd slot的使用寿命,我有好几个树莓派的损坏原因只是sd slot接触不良。这让我联想到使用Arduino的时候,只需要点击upload就可以上传程序,非常方便。后来Arduino的风靡流行,一定程度上也和它的易用性离不了关系。那么它是什么原理呢,这就要归功与Arduino的bootl

2022-09-09 00:39:17 460

原创 低成本物联网解决方案esp01模块新手入门教程

esp01串口下载刷写flash非常简单,同时公司对社区的支持非常好,所以开发者做了很多移植工作,有很多开源固件,包括Lua(NodeMCU),Python(MicroPython),esp8266 Arduino,JavaScript(Espruino)等,玩法很丰富。

2022-06-26 19:06:47 5933

原创 [RPi bring up] hello world! 树莓派裸机点亮led

在2022年,搭载bcm2835的1代树莓派显得非常性能嬴弱。但它在芯片荒中仍然非常廉价,某些培训机构的IMX6ULL开发板却动辄几百块!目前一代b价格大概 20-30 左右,一代b+大概 40 元,比单片机最小系统都便宜。经典的ARMv6架构,aarch32指令与ARMv7a完全兼容(协处理器不同),简单易学,至今流行。比韦东山老师淘宝卖的s3c2440好多了。重要的是,因为社区巨大的用户基数,几乎所有问题都能找得到答案,网上也可以找到soc和cpu core的规格书。...

2022-06-22 00:22:41 238

原创 使用jtag和gdb实时调试Linux内核

使用jtag和gdb实时调试Linux内核 | ChangChun Master Li0. 关键词debug raspberry pi bcm2835 armv6 linux kernel J-Link jtag gdb1. 摘要gdb是一款开源debugger,调试的事实标准,gdb可以帮助开发者快速定位问题。gdb也可以作为阅读源码的工具,可以非常方便的查看运行时上下文,跳转所见即所得。因此,在嵌入式系统或底层开发中,gdb必不可少。linux内核作为操作系统调试起来有一定特

2022-04-03 01:53:33 1541

原创 HDLbits学习记录 uwaterloo cs450 附答案

HDLbits学习 uwaterloo cs450 答案 gshare history shift counter 2bc timer

2022-03-19 02:17:42 1751 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除