lk中的partition.c

lk中的partition.c中是讲的是将flashlayout保持在flash中的case,之前我们将的ptable的case是将flashlayout信息buildin到lk中。 例如: static struct ptentry board_part_list_sku3[] = { {...

2016-09-16 10:09:02

阅读数:321

评论数:0

lk中的ptable

lk中用ptentry来管理flashlayout信息。相关的只有5个函数,我们分别看一下 第一个: void ptable_init(struct ptable *ptable) { ASSERT(ptable); memset(ptable, 0, sizeof(struct...

2016-09-16 09:54:02

阅读数:858

评论数:0

lk中的cbuf

lk中默认提供cbuf给大家使用。 只要使用下面这三个函数就可create/read/write buf void cbuf_initialize(cbuf_t *cbuf, size_t len); size_t cbuf_read(cbuf_t *cbuf, void *_buf, si...

2016-09-16 09:30:33

阅读数:482

评论数:0

lk中的bio机制 2

bio中除了可以使用真实的block dev,还可以使用memory中的block dev,这样每次可以读写block count 的数据,加快读写的速度。 int create_membdev(const char *name, void *ptr, size_t len) { mem_b...

2016-09-16 09:12:29

阅读数:359

评论数:0

lk中的bio机制 1

bio提供了对block dev的read/read_block/write/write_block/erase/close等操作的封装,采用bio对block dev读写操作的时候不用考虑对齐的问题,bio默认已经处理了这部分。 bio的使用比较简单,如下所示 void platform_i...

2016-09-16 09:02:07

阅读数:255

评论数:0

lk中的bcache机制

bcache 是lk中为block提供的一种使用dram来临时缓存dev中的内容,提高对block的读写速度。 使用bcache 来代表一个block的缓存 struct bcache { bdev_t *dev; size_t block_size; int count; struc...

2016-09-15 09:59:13

阅读数:350

评论数:0

lk中的dprintf实现

在lk中我们一般通过dprintf来打印log,如下所示 dprintf(INFO, " 0x%x", t->tls[i]); 其中INFO表示log的级别,lk中总共有三种级别 /* debug levels */ #define CRITICAL 0 #de...

2016-09-15 08:49:30

阅读数:1096

评论数:0

lk中的mutex_t机制

lk中还实现thread对全局资源保护的机制:mutex_t。主要用于对全局变量资源保护.而event 主要用于多thread之间 实现这套机制总共就5个函数,我们一个一个看一下 mutex_x的初始化函数和event一样,也是每个mutex_t 需要时wait queue ...

2016-09-02 10:37:19

阅读数:410

评论数:0

lk中的event siganl

在fastboot_init 函数中会注册一个usb的gadget int fastboot_init(void *base, unsigned size) { if (udc_register_gadget(&fastboot_gadget)) goto fail_udc...

2016-09-02 10:04:39

阅读数:533

评论数:0

lk中的event wait

lk中提供event来协调thread之间的工作,如fastboot中的thread会一直等待usb 给发送event事件后才继续往下走。 例如fastboot_init 中会调用event_init来初始化两个event。 int fastboot_init(void *base, unsi...

2016-09-02 09:41:22

阅读数:470

评论数:0

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