nuttx
Destihang
这个作者很懒,什么都没留下…
展开
-
read()函数流程(USB读取文件)
ssize_t read(int fd, FAR void *buf, size_t nbytes);通过当前的TCB(或者说PCB的文件列表找到) 找到打开的文件列表group->tg_filelist,然后根据相应的fd,找到对应filep(&list->fl_files[fd])。size_t file_read(FAR struct file *filep, FAR void *b原创 2016-08-21 17:32:31 · 4713 阅读 · 0 评论 -
mount函数分析
首先判断挂载的类型是否符和已经定义好的文件系统类型。里面的实现方式是比较对应字符串是否相同。mount_findfs(g_bdfsmap, filesystemtype);其中g_bdfsmap就是已经定义好的文件系统类型。static const struct fsmap_t g_bdfsmap[] = { #ifdef CONFIG_FS_FAT { "vfat"原创 2016-07-06 22:13:53 · 2385 阅读 · 0 评论 -
stat()函数解析
在完成任务的过程中遇到了一个问题就是调用stat函数获取文件信息的时候有些文件总是返回错误代码22(EVAL),后来一步一步跟踪到内核源码里面发现原来是文件名的长度超出了规定的长度。因为是在nuttx上使用的该系统调用,所以以为是不是其中有bug,最后才知道是配置文件.config中配置CONFIG_FAT_MAXNAME为32太小了。之前也没有了解过该系统调用,所以就来仔细的看一看这个函数。原创 2016-06-30 22:52:57 · 4287 阅读 · 0 评论 -
spi nor flash驱动
嵌入式系统中flash的作用相当于PC上的硬盘来存放永久的数据,不像内存那样掉电数据就会消失。而我们使用的是nor flash,操作也比较简单,直接读取flash的地址就可以将数据通过memcpy到内存(当然是需要给相关寄存器配一些值),然后传给上层使用。专用SPI控制器主要有CTRL,CMD,DATA,ADDR,STATUS寄存器。相关命令 /* Command原创 2016-08-28 16:20:39 · 4549 阅读 · 0 评论