程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7876|回复: 0
打印 上一主题 下一主题

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。( o& W" l9 |, u& P/ s( {
#include <linux/init.h>3 {, l; o3 w9 M* e7 z2 K
#include <linux/module.h>
% z5 ~# m. l; q) S$ a4 I; T4 A#include <linux/kernel.h>
0 H9 z* n/ F  u% Y& g/ ?#include <linux/types.h># z, u$ k* y, m9 K5 |
#include <linux/gpio.h>5 |& W) e- H- b2 U2 J. I& q7 |
#include <linux/leds.h>" }) C0 ?  w! T
#include <linux/platform_device.h>
+ j7 \- t) L, C- n% H' r1 M7 a# P' m0 R7 h6 b; }" \
#include <asm/mach-types.h>- N  [0 |" B5 Z. {' n
#include <asm/mach/arch.h>0 Q9 x3 }, _: o3 Y
#include <mach/da8xx.h>( u5 }" Z9 c* @; N
#include <mach/mux.h>
( ?" w0 |0 Z7 j; H+ {( K: O7 ~
% T  I5 r5 A, M" v2 t#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)- ~/ e4 M6 l& V( V
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)8 l6 T9 d6 {; B: K3 a
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
: h' `8 x3 f7 |#define DA850_USER_LED3        GPIO_TO_PIN(0, 2): ^+ w* I0 D; g% ?+ r' t8 F# Y
$ k8 g4 D- O" z$ V  |1 b. @
/* assign the tl som board LED-GPIOs*/
9 W1 `) E8 [  w. k5 Q. J1 z  n) vstatic const short da850_evm_tl_user_led_pins[] = {
2 L' m& N6 b! z, k4 b: y        /* These pins are definition at <mach/mux.h> file */% P' W$ `4 ]5 r7 z4 C" H. J
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,+ j. F& N1 K0 A0 {! U
        -1
6 X; q4 X) v& `& S; N1 Q( ?& m};
# d. l5 n" M% k( \$ A8 M+ v. R  q% o' R0 E0 r
static struct gpio_led da850_evm_tl_leds[] = {. j/ Q/ A$ A' i5 k
        {. Y' ~3 k0 q5 U3 E5 T" o. @
                .active_low = 0,
4 q, \* m4 `, w$ K% F& n" c                .gpio = DA850_USER_LED0,
: E5 d4 R5 z$ B: v1 z  A' i0 k                .name = "user_led0",
7 q, x1 F; W7 L0 I6 N1 `' P# X$ ^                .default_trigger = "default-on",
% }: F" ], h2 ^" ]0 D        },/ t/ G- ?4 \$ Y: r# g
        {
+ Q! s) W5 v6 |. D                .active_low = 0,
* f7 v$ `6 p% T                .gpio = DA850_USER_LED1,
/ q' l( p2 F4 g# Z8 a                .name = "user_led1",: D: d# @- j8 A& K2 _6 T* u
                .default_trigger = "default-on",
9 \  M' `" T5 [. B        },: K2 w- |6 E9 _# _: O/ d
        {5 \* H, {* `+ z9 G; i% ^
                .active_low = 0,
% b( I- J7 I5 O  e8 R: ~1 g                .gpio = DA850_USER_LED2,
; p( M2 P. V- ^& @                .name = "user_led2",
% c6 P" R8 U( W1 ]7 ~                .default_trigger = "default-on",% R! H( x$ t1 D" `+ b; _
        },& x4 {& @8 m8 p6 G% u
        {
/ h" ?+ h+ O# X" q# `; o1 @# O                .active_low = 0," L6 C6 W( r9 Q1 D
                .gpio = DA850_USER_LED3,1 l2 I7 c1 x8 u. i2 A
                .name = "user_led3",
4 x, [+ i! j5 f( B: Y) @                .default_trigger = "default-on"," @6 c5 c* h8 E2 D5 i' C1 {
        },% h4 Z, U  h# G0 S' p3 {
};
  ]6 `% L9 l+ \& G! G1 q( D9 s$ V4 r8 o2 e9 ^/ @+ i- `
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {, H- }; S+ z/ t( N+ w2 r) T
        .leds = da850_evm_tl_leds,
$ {1 B) T( F" u) q4 `' E6 k        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
" {( J* F( u9 ]" r5 i. G, R};
$ p  H* |! d0 P9 f" |9 |  P8 A0 E5 U, d5 Q( U
static void led_dev_release(struct device *dev)
% e  d- ?$ ]( m! C2 w; Z{
* {# g: N1 V& E: ^};# _1 H0 ?. K. S: b$ r

" m) b  T, X9 z2 P) |static struct platform_device da850_evm_tl_leds_device = {
" u: \' M# E' V7 c7 T        .name                = "leds-gpio",
3 I+ R& e# m8 u: R2 s9 U* F: C        .id                = 1,
, Q* |! C* ^) G% p) A4 p1 z$ u) d        .dev = {
' X1 \! S% h; f9 r1 V; n: `& J                .platform_data = &da850_evm_tl_leds_pdata,
$ {- p5 g0 m" I4 V5 Q                .release = led_dev_release,0 B1 j, b, G( C; U
        }
- p( a# Y9 C  P  }* d9 f4 S};
- f' _. J8 V8 d/ x" l+ [5 @/ _( q$ d% P0 ~8 G" Q9 I
static int __init led_platform_init(void)6 S( |! p+ ]. A/ v1 ~0 s
{8 v$ R( @% g( ]4 b+ h/ v8 f8 x
        int ret;; q. h2 Q  a# R/ o5 E# G/ Z. c
#if 0+ h% c( G: S! Y1 a! S
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
2 N; z& I3 @+ w: P4 X        if (ret)# t; v& t8 ]! i1 I* z
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
/ e. r! l! m) k" K: Y, ~2 t                                "%d\n", ret);
4 _! q  c$ H/ O#endif3 w8 c% O% U4 U0 k' O1 \. z
        ret = platform_device_register(&da850_evm_tl_leds_device);
! g+ j' L2 R7 w        if (ret)2 R( O2 g/ B& \& n6 N" `. D
                pr_warning("Could not register som GPIO expander LEDS");
# H' E( X; }4 o        else
5 I" @. o# E; a7 R+ q& |                printk(KERN_INFO "LED register sucessful!\n");
  M8 J5 \4 a, S7 F& h1 Z/ B  h8 |; Y% q
5 u2 h5 ^  Z" a% D3 _/ `3 o; d; c- |        return ret;5 p* f6 c: W$ c& ?  G& V
}
& r6 }. k/ S: Z2 ?/ t" X" ]% V0 N7 @% p
static void __exit led_platform_exit(void). q3 |. K0 O2 @  p
{
8 ?5 ~; x2 \. p; V, z        platform_device_unregister(&da850_evm_tl_leds_device);
7 S5 u, Z+ k: R0 K/ P$ P" n5 R0 z  m; g/ r: y) K2 j
        printk(KERN_INFO "LED unregister!\n");; L9 I2 X+ ?$ u5 N# X
}1 \: w2 A/ u6 N4 H/ L
9 U# H6 C/ r8 ?3 E1 w5 `* Q
module_init(led_platform_init);! D' Q4 P$ a: B1 G2 O
module_exit(led_platform_exit);# h! u1 m' X1 o- P0 O7 o% h$ t4 j
' y9 |+ I4 A4 e! T
MODULE_DESCRIPTION("Led platform driver");0 {6 i& U! r! M9 u* s
MODULE_AUTHOR("Tronlong");1 R5 `1 a6 m2 s0 e" i; `0 y$ Z; P2 L' t
MODULE_LICENSE("GPL");
! j7 ^: C* z1 e) C, G: j
8 r& R7 Q8 X" X6 t  {8 h1 w
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2026-1-13 07:40 , Processed in 0.059790 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表