Changchun Master Li

[RPi bring up] 树莓派实现两个进程交替打印ab

Linux 树莓派 RPibringup 操作系统
My earliest test program was written to use one thread to write the letter A to the screen. The other thread wrote the letter B.—— just for fun ...
Read more

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

Linux 树莓派 RPibringup 操作系统
阅读本文您不需要掌握的知识有 高深的操作系统理论 高深的计算机体系结构理论 阅读本文您需要具备 全日制小学生学历及其同等学历 ★★★★★ 熟读arm1176jzfs datasheet ★★☆☆☆ ARM汇编语言 ★☆☆☆☆ C语言 ★★★★☆ 当中断发生时,程序执行流程将暂停并且运 ...
Read more

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

树莓派 RPibringup 操作系统
受到xv6的启发,我也想给我襁褓之中的“操作系统”赋予内存管理功能。一个完善的内存管理需要考虑很多failover,缓存、tlb、page replacement等诸多功能,导致实际中使用的内存管理系统非常复杂。我决定我的内存管理从设计开始就极度简化,只实现最基础的功能。 设计把所有内存组织 ...
Read more

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

树莓派 RPibringup 操作系统
首先我们回顾一下上一篇文章,arm32汇编有以下特点 32bit指令 4GB地址空间 16个32bit通用寄存器 哈弗架构,取数据和取指令分别、并发的访问内存 有单独的load/store指令 默认为小端字节序(高地址保存高字节,数字顺序)可以支持大端模式(低地址保存高字节,字符串阅读顺序 ...
Read more

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

树莓派 RPibringup 操作系统
阅读本文您不需要掌握的知识有 高深的操作系统理论 高深的计算机体系结构理论 高深的程序设计理论 阅读本文您需要具备 GNU工具链(make/GCC/LD) ★★☆☆☆ C语言 ★★☆☆☆ 安装有raspbian的树莓派 阅读本文您可以得到什么 可以用汇编语言刷online judg ...
Read more

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

树莓派 RPibringup 操作系统

阅读本文您不需要掌握的知识有

  • 高深的操作系统理论
  • 高深的计算机体系结构理论

阅读本文您需要具备

  • 全日制小学生学历及其同等学历 ★★★★★
  • GNU工具链(make/GCC/LD) ★★☆☆☆
  • ARM汇编语言 ★☆☆☆☆
  • C语言 ★★★★☆
  • Python ★☆☆☆☆

0. keyword

raspberry pi 1 bcm2835 armv6 bootloader embedded operating systems OS uart fat32 sd driver low level 底层开发 树莓派 裸机 C语言 arm汇编

1. requirement

在平时对树莓派的底层系统开发时,我需要频繁的替换kernel.img来对kernel进行更新调试。
这是我的工作流程

  1. 树莓派断电关机
  2. 从树莓派取出sd卡
  3. 把sd卡插到我的开发机上
  4. 挂载sd卡的文件系统
  5. 编写,修改程序,build出新的kernel.img
  6. 将kernel.img复制到sd卡上
  7. 卸载sd卡的文件系统
  8. 从我的开发机上取出sd卡
  9. 把sd卡插到树莓派上
  10. 树莓派上电开机

DUMMY!这个过程非常的枯燥麻烦,sd卡插不紧还会接触不良,有时候为了一个很小的改动要折腾半天。长期的插拔sd卡,也会显著降低sd slot的使用寿命,我有好几个树莓派的损坏原因只是sd slot接触不良。

Read more

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

esp8266 arduino 底层开发

0. introduction

esp8266 是上海乐鑫出的低功耗WiFi芯片。搭载esp8266芯片的esp01是一个UART-WiFi无线模块,价格不到5块钱,深圳安信可出品,物美价廉,一个树莓派4的钱可以买50个!官方支持非常走心,一直在更新sdk,官方提供RTOS SDK和给低端芯片用的NONOS SDK。

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

Read more

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

树莓派 RPibringup 操作系统

阅读本文您不需要掌握的知识有

  • 高深的操作系统理论
  • 高深的计算机体系结构理论

阅读本文您需要具备

  • 全日制小学生学历及其同等学历 ★★★★★
  • GNU工具链(make/GCC/LD) ★★☆☆☆
  • ARM汇编语言 ★☆☆☆☆

0. keyword

raspberry pi 1 bcm2835 armv6 hello world led blink embedded operating systems

1. abstract

得益于超大规模集成电路技术,SoC可以在单个芯片上集成CPU、GPU、内存和外设,使其成为一个五脏俱全的完整系统。因此制造尺寸更小的单板计算机成为可能。单板计算机的应用非常广泛,从家用微波炉电视机到商用加油机广告机,单板计算机无处不在。树莓派就是一款信用卡大小的单板计算机。

遗憾的是,大多数人只是用它跑一个web服务或者家用nas。而树莓派基金会最初开发树莓派的目的就是在学校中推广计算机基础科学,通过树莓派,可以很容易的将计算机体系结构和操作系统的知识付诸实践!

Read more

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

底层开发 rpi Linux 树莓派 RPibringup
0. 关键词debug raspberry pi bcm2835 armv6 linux kernel J-Link jtag gdb 1. 摘要gdb是一款开源debugger,调试的事实标准,gdb可以帮助开发者快速定位问题。 gdb也可以作为阅读源码的工具,可以非常方便的查看运行时上下 ...
Read more

HDLbits学习记录 uwaterloo cs450

底层开发 verilog

刷完HDLbits后一段时间没关注了,偶然发现最近更新了。
新增加的四道题都和处理器分支预测相关,正好我之前有相关经验,借此机会重温一下

Read more
Prev Next