当前位置: 首页 > news >正文

深圳考试培训网站建设网页设计代码基础模板

深圳考试培训网站建设,网页设计代码基础模板,网站 需求,万能软文范例800字内核编译 一、内核编译的步骤 编译步骤: (linux 内核源码的顶层目录下操作 ) 1. 拷贝默认配置到 .config cp config_mini2440_td35 .config 2. make menuconfig 内核配置 make menuconfig 3. make uImage make u…

内核编译

一、内核编译的步骤

编译步骤: (linux 内核源码的顶层目录下操作 )
1. 拷贝默认配置到 .config              cp config_mini2440_td35 .config
2. make menuconfig 内核配置       make menuconfig
3. make uImage                             make uImage

二、编译过程遇到的问题 

1、在 make uImage编译时报错:
Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at kernel/timeconst.pl line 373.
/home/linux/linux-2.6.32.2/kernel/Makefile:129: recipe for target 'kernel/timeconst.h' failed
make[1]: *** [kernel/timeconst.h] Error 255
Makefile:878: recipe for target 'kernel' failed
make: *** [kernel] Error 2

修改

 2、修改入口地址

通过tftp下载到开发板后,内核还不能正常启动 

 原因:

加载地址 Load Address:0x30008000

入口地址 Entry Point:要改成0x30008040

因为:uImage前64字节是头文件,要偏移64字节

3、 Image zImage uImage
Image 可以直接使用的内核镜映像
zImage 一段解压程序 + Image 的压缩文件
uImage 64 字节的头信息+ zImage

改成下图 

修改方法

 

再重新编译 

三、向内核中加入新文件

向内核中新加文件(以向 drivers/char 下新加 test.c 文件为例)
1. drivers/char 目录下创建并编辑文件 test.c
2. 修改同层目录下 Makefile ,新增一句
obj-$(CONFIG_TEST) += test.o
3. 修改同层目录下的 Kconfig ,新增一个配置选项
config TEST
bool “ this is a test
default y
help
hahaha, have big use, donot delelte!
4. make menuconfig
5. make uImage

 四、加入新的目录

1、创建一个新的目录,在该目录下写一个新的Kconfig

Kconfig的格式

2、在该目录的上一级目录的Kconfig里加入

五、补充知识

1、在 Linux 内核编译过程中,cp config_mini2440_td35 .config 命令的作用是将一个预先配置好的内核配置文件 config_mini2440_td35 复制到当前目录下的 .config 文件中。

2、make menuconfig 可视化的配置菜单(内核活地图)配置完成后,可以保存更改,这些更改将反映在当前目录下的 .config 文件中。

3、更改Kconfig的配置后,make menuconfig菜单也会被更改(Kconfig 定义make menuconfig中的选项)

4、

.config ( 存放 make menuconfig 的配置结果 )
CONFIG_BT = y
CONFIG_WIFI = n
Makefile ( 使用 .config 中的变量 )
obj-$(CONFIG_BT) += bt.o
obj-$(CONFIG_WIFI) += wifi.o
b 相对跳转 短跳转 pc += 100
ldr 绝对跳转 长跳转 pc = 200
地址相关代码: 加载地址和链接地址需要保持一致
地址无关代码:

设备驱动

设备驱动分类:
字符设备:数据访问是顺序的 ( 字节流 )
块设备:数据访问是随机的,一般是存储设备
网络设备:会集成协议, 靠名字维护

 计算机组成:软件(图上)、硬件(图下)

设备号: 32位
高12位:主设备号,区分不通类型的设备
低20位:次设备号,区分同类的不通设备 

驱动程序开发步骤

1、向内核中加入新文件(具体参考上面)
加入的demo.c文件内容 (驱动程序),加入后配置make menuconfig 编译make uImage
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/types.h>
#include <linux/fs.h>
#include <linux/cdev.h>
#include <linux/kdev_t.h>
#include <linux/module.h>#define MAJOR_NUM 255
#define MINOR_NUM 0
#define DEV_NAME "demo"static int open(struct inode*node,struct file*file)
{printk("demo open ...\n");return 0;
}static ssize_t read(struct file*file,char __user*buf,size_t len,loff_t*offset)
{printk("demo read...\n");return 0;
}static ssize_t write(struct file*file,const char __user*buf,size_t len,loff_t*offset)
{printk("demo write ...\n");return 0;
}static int close(struct inode*node,struct file *file)
{printk("demo close...\n");return 0;
}static dev_t dev_num;
static struct  file_operations fops=
{.owner =THIS_MODULE,.open=open,.read=read,.write=write,.release=close
};
static struct cdev dev;static int __init demo_init(void)
{int ret=0;dev_num =MKDEV(MAJOR_NUM,MINOR_NUM);ret=cdev_add(&dev,dev_num,1);if(ret<0){goto err_cdrv_add;}cdev_init(&dev,&fops);ret=register_chrdev_region(dev_num,1,DEV_NAME);if(ret<0)goto err_register;printk("demo_init #######################\n");// registerreturn 0;err_cdrv_add:cdev_del(&dev);printk("demo_init cdev_add failed ...\n");return ret;err_register:unregister_chrdev_region(dev_num,1);cdev_del(&dev);printk("demo_init cdev_add failed ...\n");return ret;
}static void __exit demo_exit(void)
{unregister_chrdev_region(dev_num,1);cdev_del(&dev);printk("demo_exit #######################\n");
}module_init(demo_init);
module_exit(demo_exit);

2、在 下写应用层的程序,并用 arm-linux-gcc demo_app.c -o demo_app命令编译
应用层的程序demo_app.c的内容
#include<stdio.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<unistd.h>
#include<stdlib.h>int main(int argc, const char *argv[])
{int fd=open("/dev/demo_app",O_RDWR);if(-1==fd){perror("open");return -1;}char buf[10];read(fd,buf,sizeof(buf));write(fd,buf,sizeof(buf));close(fd);return 0;
}

3、在开发板下载内核、启动内核

4、在开发板上的Linux系统输入命令:mknod /dev/demo_app c 255 0

手动创建设备节点:
mknod /dev/demo c 255 0
/dev/demo 设备节点名称 (open 的设备名 )
c 字符设备
255 主设备号
0 次设备号

 5、最后运行应用层的程序 

http://www.yayakq.cn/news/592453/

相关文章:

  • ai生成建筑网站如何建设成为营销网站
  • 怎么做福利视频网站建设网站的难点
  • 做旅游网站的需求分析wordpress 酒店主题
  • 做图书网站赚钱吗网站调优
  • 做网站能接到项目工程吗品牌宣传型网站构成
  • 济南国画网站建设网站建设的一些问题
  • a站建设安全工程信息网站
  • 黑科技引流工具2022年seo还值得做吗
  • 装修网站建设方案百度文库网站主页用ps做
  • 网站内容优化技巧网站被挂马怎么处理
  • 沈阳网站外包公司网站seo的重要性
  • 做外贸一般上什么网站茶叶营销策划方案
  • 物流网站建设策划书宜宾建设招标网站
  • 顺德制作网站价格多少在服务器上布网站怎么做的
  • 用ps如何做模板下载网站大型商城购物平台开发
  • 建站软件公司一号建站
  • 网站 用户粘度做网站上饶
  • 文章写作网站s001网站建设
  • 辽宁工程建设信息网网站官网网站建设
  • 新区seo整站优化公司dw软件怎么下载
  • 连云港网站建设培训班外包一个企业网站多少钱
  • 旅游网站排行榜前20泰安网站建设推广
  • 成都响应网站建设网站排名怎么提升
  • 怎么授权小说做游戏网站建设网点查询附近
  • wordpress 5.0多站点店铺推广引流的方法
  • 刚开今天新开传奇网站一键抠图永久免费
  • 自己做的网站还用维护呢周口在线网站建设
  • 泰安住房和城乡建设局网站深圳外贸企业网站建设
  • 网站遭受攻击安徽建站之星
  • 阳网站建设wordpress获取分类文章列表