LKD2:

第二章 从内核出发
1. 内核就如性格怪异的猛兽,但并非不可驯服,让我们来驾驭他
2. 不要和/usr/src/linux的目录混在一起
3. 使用补丁:patch -p1<../patch-x.y.z
4. CONFIG_FEATURE来标识。二选一,或者三选一(yes,no,module)
5. make config, make menuconfig, make xconfig, make gconfig, make defconfig,然后就是make
6. make -jn, 或者用distcc,ccache等工具。
7. 配置grub或lilo等。
8. make modules_install
9. System.map的作用
------------------------------------------------------
与编译应用程序的不同,导致内核成了一只性格迥异的猛兽
1. 没有C库
 -先有鸡还是先有蛋的问题
 -C库太大且效率不能接受
 -printk
2. GNU C
 -inline 函数:static inline void dog()
 -内联汇编
 -likely 和 unlikely
3. 缺乏内存保护机制
 -内核错误会导致oops
 -内存都不分页
4. 浮点数很难使用
 -保存和恢复浮点寄存器外,还有...
 -别这么做了,不要在内核中使用浮点数
5. 内核只有很小的定长栈
 -一般是2page
6. 注意并发和同步
 -(抢占多任务,多处理器系统,中断的异步性,内核可抢占)
 -自旋锁,信号量,原子操作
7. 可移植性
 -大部分C代码应该与体系结构无关
 -字节序,对齐,不假定字长,页面大小等。

8. 作者最后的总结
内核不外乎是一个程序,它与我们司空见惯的程序没有多大区别,不必望而生畏:
直面它,呼唤她,摆布她。
必须要全身心的投入,阅读代码,剖析代码,并毫不气馁。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
function dydt=tongbufadianji(t,y) % 首先指定全局变量 %global a1 a2 a3 a4 Rf % 下面输入电机基本数据: r=2.9069E-03,Rfd=5.9013E-04,Rkd=1.1900E-02,Rkq=2.0081E-02;Ufd=24;w=314,Ll=3.0892E-04,Lmd=3.2164E-03,Lmq=9.7153E-04,Llfd=3.0712E-04,Llkd=4.9076E-04,Llkq=1.0365E-03, Laa0=1/3*(Lmd+Lmq)+Ll;Laa2=1/3*(Lmd-Lmq);Mab0=1/2Laa0;;Mab2=Laa2;Mafd0=2/3Lmd,Makd0=2/3Lmd,Makq0=Lmq,Lfd=Llfd+Lmd,Lkd=Llkd+Lmd,Lkq=Llkq+Lmq,Mfkd=Lmd; L=[ -(Laa0+Laa2cos(2wt)), -(-Mab0+Mab2cos(2(wt+2pi/3))), -(-Mab0+Mab2cos(2(wt-2pi/3))), Mafd0cos(wt), Makd0cos(wt), -Makq0sin(wt); -(-Mab0+Mab2cos(2(wt+2pi/3))), -(Laa0+Laa2cos(2(wt-2pi/3))), -(-Mab0+Mab2cos(2(wt))), Mafd0cos(wt-2pi/3), Makd0cos(wt-2pi/3), -Makq0sin(wt-2pi/3); -(-Mab0+Mab2cos(2(wt-2pi/3))), -(-Mab0+Mab2cos(2(wt))), -(Laa0+Laa2cos(2*(wt+2pi/3))), Mafd0cos(wt+2pi/3), Makd0cos(wt+2pi/3), -Makq0sin(wt+2pi/3); -Mafd0cos(wt), -Mafd0cos(wt-2pi/3), -Mafd0cos(wt+2pi/3), Lfd, Mfkd, 0; -Makd0cos(wt), -Makd0cos(wt-2pi/3), -Makd0cos(wt+2pi/3), Mfkd, Lkd, 0; Makq0sin(wt), Makq0sin(wt-2pi/3), Makq0sin(wt+2pi/3), 0, 0, Lkq] G=[ 2Laa2sin(2wt), 2Mab2sin(2(wt+2pi/3)), 2Mab2sin(2*(wt-2pi/3)), -Mafd0sin(wt), -Makd0sin(wt), -Makq0cos(wt); 2Mab2sin(2*(wt+2pi/3)), 2Laa2sin(2*(wt-2pi/3)), 2Mab2sin(2*(wt)), -Mafd0sin(wt-2pi/3), -Makd0sin(wt-2pi/3), -Makq0cos(wt-2pi/3); 2Mab2sin(2*(wt-2pi/3)), 2Mab2sin(2wt), 2Laa2sin(2*(wt+2pi/3)), -Mafd0sin(wt+2pi/3), -Makd0sin(wt+2pi/3), -Makq0cos(wt+2pi/3); Mafd0sin(wt), Mafd0sin(wt-2pi/3), Mafd0sin(wt+2pi/3), 0, 0, 0; Makd0sin(wt), Makd0sin(wt-2pi/3), Makd0sin(wt+2pi/3), 0, 0, 0; Makq0cos(wt), Makq0cos(wt-2pi/3), Makq0cos(wt+2pi/3), 0, 0, 0] % 下面进行曲线拟合: R=[-r, 0, 0, 0, 0, 0; 0, -r, 0, 0, 0, 0; 0, 0, -r, 0, 0, 0; 0, 0, 0, Rfd, 0, 0; 0, 0, 0, 0, Rkd, 0; 0, 0, 0, 0, 0, Rkq] Uabc=[100,0,0,Ufd,0,0]'; y(1)=0; dydt=L(Uabc-wGy-Ry)这段代码有问题吗
06-08

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值