摘要:
串口接收到数据,并传递给run_command()函数,run_command()函数调用common/command.c中实现的find_cmd()函数在u_boot_list段内查找命令,并返回cmd_tbl_t结构。然后run_command()函数使用返回的cmd_tbl_t结构中的函数指针 阅读全文
摘要:
第一阶段: 1.硬件设备初始化:将CPU设为SVC模式,关闭开门狗,设置时钟,关闭MMU,Cache(在u-boot-1.1.6/cpu/arm920t/start.s中定义) 2.准备ram:设置存储控制器(在u-boot-1.1.6/board/100ask24x0/lowlevel.s中实现) 阅读全文
摘要:
1.解压缩 tar xjf u-boot-1.1.6.tar.bz2 2.打补丁 patch -p1 < ../u-boot-1.1.6_jz2440.patch 3.配置 make 100ask24x0_config,下面为Makefile unconfig: #清楚配置信息 @rm -f $(o 阅读全文
摘要:
其实LCD主要用途就是用来显示数据,那么数据的来源和其传输方式就是主要关注点了;做过一个项目是显示红外热像图,通过pico384获取原始图像数据,它会将数据通过一条串行线输出出来,然后通过串行转并行芯片把数据以14路并行GPIF设置好的时序传给cypress,此芯片再通过usb接口传给上位机显示,这 阅读全文
摘要:
其实nand flash和nor flash的区别已经没什么好说的了,这里单说在arm9里的启动方式:由于nor有自己独立的地址线和数据线,可以直接运行程序;但nand地址数据公用,启动时cpu只会拿前4KB数据去sram运行,所以对于大于4KB的程序,就要考虑如何完整的实现程序了?即将4KB之后的 阅读全文
摘要:
MMU:负责虚拟地址到物理地址的映射,提供硬件机制的内存访问权限检查;前者使得多个用户进程都拥有自己的独立地址空间,后者可以保护每个进程所用内存不会被其他进程破坏 页表:由一个个条目(描述符)组成,每个条目存储了一段虚拟地址对应的物理地址及访问权限,或下一级页表的地址 TLB:对于二级页表需要访问3 阅读全文
摘要:
1.作为stm32f103VET6来讲,有4G的寻址空间;ram:64KB; rom:512KB; 内部寄存器:若干;可从flash,ram,系统存储器启动 2.作为S3C2440来讲,理论上也有4G的寻址空间;存储控制器可访问8个大小为128MB的BANK;内部寄存器:若干;可从norflash和 阅读全文
摘要:
1.首先进入嵌入式领域是通过stm32,算是入门机的嵌入式的硬件;接着接触了一些实时操作系统,当然linux早些时间都有接触过,但都只知道是什么,不知道究竟能干什么?所以刚踏入工作,之余,为了不消极kill time,也算进一步窥探嵌入式世界里究竟是是什么东西在吸引着无数的人,继续写博客记录一些学习 阅读全文
摘要:
说说inline函数吧,它是一个直接定义的函数,没有声明(不能声明一个inline函数)。 思考一个问题--它的作用是什么? 为解决频繁的函数调用所造成的栈空间的大量开销,引入inline修饰符,可表内联函数。 函数调用时会为函数的参数开辟栈空间,但用完会释放掉,所以参数不会造成空间滥用,真正造成滥 阅读全文
摘要:
内核对象和各种内核机制的函数接口都在os.h里声明,实现在各自的.c文件,比如os_tmr.c和os_time.c。 C语言全局变量一般会默认初始化;局部变量如若不初始化,会分配垃圾数据的;建议使用时都手动初始化。 其实使用内核对象时,就类似与使用任务,只不过在创建对象之前,要先声明一个内核对象。 阅读全文