程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。6 b4 y2 k2 h' I  d- K: b+ M$ ]5 B
#include <linux/init.h>
! e+ j6 _! i  ~! \& h% z/ a+ d#include <linux/module.h>
  b# G5 l2 ^% Y4 U( P" N3 J! D#include <linux/kernel.h>
) m/ V! t2 B! z' o' e#include <linux/types.h>5 _/ y* h( N8 V& q3 @2 |+ h1 J+ T7 G
#include <linux/gpio.h>
$ ?  J) ~- G+ T% k9 c2 R% n#include <linux/leds.h>
. ?* E9 L: I+ T# w2 f#include <linux/platform_device.h>
+ r; y3 n6 S2 t8 L! l( Q# W+ B" h$ V. C" |
#include <asm/mach-types.h>1 |; N, a' Z( y: e7 i# Z& q0 r
#include <asm/mach/arch.h>
6 ^" t9 s" i5 K! _$ }. G9 ^#include <mach/da8xx.h>1 n- p9 q* I" G2 p2 ^2 d! D
#include <mach/mux.h>+ Z- g) X( E% E: U5 a

! Y) s& C; Q( I% g" a#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
9 x: n8 [" u! c) \& E% D9 b$ T6 o9 o#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)/ B$ q* J0 c, n/ D* x$ p
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)* L% R  J: ~; L$ q1 E; K2 F7 i
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)- j! l, q: }3 |: Z( i0 m5 O& W4 y( X
8 e# I! N+ ^( J; y+ i0 E& W( x
/* assign the tl som board LED-GPIOs*/0 b. m' g6 o5 H5 C* E. G0 y
static const short da850_evm_tl_user_led_pins[] = {
( P' }7 \5 X: h& g* J        /* These pins are definition at <mach/mux.h> file */! ?3 m) Y  i4 V6 K& Z0 D" ?
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
$ d9 b/ j/ `/ g# Z        -1- \+ D% ^# f( i
};0 t4 r9 s$ K' h; w
9 E& L" I; ?: @/ j* Y
static struct gpio_led da850_evm_tl_leds[] = {3 I6 _( e* H* E$ W- z
        {
' j" Z: [0 T- E' O# s                .active_low = 0,
* q: o$ u1 s& a3 h% {( b                .gpio = DA850_USER_LED0,
- L) H/ ^8 K0 B" S- y                .name = "user_led0",( _( h+ T0 P$ M+ R
                .default_trigger = "default-on",
# g5 S+ `7 g% n% T. n, \" Y3 D" a        },
9 j9 d% b. S9 v0 O) |+ t/ l        {
6 d8 q- ^4 D* ?6 B' n+ }; P                .active_low = 0,
% ]7 L8 h6 B/ g/ }                .gpio = DA850_USER_LED1,, r3 a3 z( b7 g' b/ W5 |1 P
                .name = "user_led1",# [5 O2 j$ ^6 o. C
                .default_trigger = "default-on",1 w7 {! t' y  G/ m! z9 N
        },( R+ {. b0 m% l% s5 d5 `: Z
        {0 J3 V4 j' S2 M9 q, V8 E
                .active_low = 0,: w1 R; {6 k$ i# o; n# z1 a% Z" Z2 z
                .gpio = DA850_USER_LED2,
4 y. o4 }& i) [; T2 y/ V  \$ q                .name = "user_led2",$ N8 G. P& p+ G' z) H) E* W
                .default_trigger = "default-on",
$ U' r( z& K1 w  k$ |3 K6 g        },, _, K2 i5 R$ T  G4 b, E
        {* x. |% Z, v7 n1 _
                .active_low = 0,
' D( x  ]9 x1 i/ p8 B/ O1 v                .gpio = DA850_USER_LED3,3 I: N" Z, A) G. g' \
                .name = "user_led3",% C. M' G: i! V4 b
                .default_trigger = "default-on",
# J% ^( K! O; ~+ v& m/ E- s' y        },3 E% s' Q3 @- x/ t% I
};( i6 Z7 P. \( R

% c# m2 g0 X  I6 ?5 s& \% vstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
4 H( n+ H1 s$ s" P* }% O& q        .leds = da850_evm_tl_leds,7 K$ _# A+ J  d  [" z* A. r! V
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),% q' V5 K* T6 W9 s4 \# P( k
};
  e+ H2 P$ Y- L3 X
) C; Q9 F7 p# Z6 M& _static void led_dev_release(struct device *dev)4 q' E9 L' [# d$ r
{# P8 \) [& q5 Z! a6 L
};& ^2 E4 N1 g9 K) R% G3 V; t8 b8 d

: }9 [8 P2 r4 ~% ~8 h7 Ustatic struct platform_device da850_evm_tl_leds_device = {# P+ e6 h0 }" \6 l3 S2 L- Y/ D& m
        .name                = "leds-gpio",  `+ p& D4 u4 H4 e
        .id                = 1,
0 n( c! P( z$ g( _' c        .dev = {
; G9 T. r4 d' \6 K7 \                .platform_data = &da850_evm_tl_leds_pdata,; T1 l9 p2 N! R$ n1 M: }2 h
                .release = led_dev_release,2 z0 b$ z; S4 r
        }0 }$ p) S  b3 E5 @6 Y
};
0 \+ w, ?. ^% E; Z0 K) D5 g! |# H* M2 M3 H0 G1 G$ y
static int __init led_platform_init(void)2 P9 E; @  h9 g6 b! F% D
{
$ n1 l  W. z! O. @; }7 Y. \, `' s  L9 v        int ret;
# \0 j& h% u) m8 _8 Y# S0 E3 g#if 0
/ ?2 w! f* B- U6 E( @6 C$ ]        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);1 j3 I2 v$ K$ |5 H& a5 w* Q4 S
        if (ret)
0 @1 b+ p- e9 `5 ?3 u% G! j% k0 g# c                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"% s9 D; I+ ?0 ^3 T0 D# V
                                "%d\n", ret);( y. p- Y+ Q! N! {
#endif3 [' D  {( ]9 W* D
        ret = platform_device_register(&da850_evm_tl_leds_device);
- `, h- a# F0 \% ^5 m: _        if (ret)# ]4 [) L4 ]7 w5 x8 f
                pr_warning("Could not register som GPIO expander LEDS");# U" f* s. _2 J1 {; b3 O6 G9 K
        else
% s8 z' D$ l( _3 l* b- j: \                printk(KERN_INFO "LED register sucessful!\n");% b( k3 X6 h3 r
3 K; s( w* g! V  N4 ^' O! f
        return ret;
6 y6 S' E) i& b: m6 b) G}
4 r' q0 T/ `2 [, t1 X* }" x7 }0 o8 m
$ B9 V* K+ J! @6 Astatic void __exit led_platform_exit(void)$ j6 I! o( e. z# N$ q- T- _; ?2 ]
{
$ ?4 R. N  ~0 x( J: v9 \% ^  n- @        platform_device_unregister(&da850_evm_tl_leds_device);$ m5 t. ]! J; Z$ M8 n

% j! ~, A! q( @  U        printk(KERN_INFO "LED unregister!\n");- {. P# ^2 T2 B( k, k  U/ t
}4 ~; f+ W2 Z" a8 g/ h6 h+ q8 w* x
# A; e7 A7 v$ @: X3 ~) v- {% z
module_init(led_platform_init);
$ E( [( ?! e: g/ l4 p2 v. Hmodule_exit(led_platform_exit);
# |; F2 `4 \- ?6 N1 A
8 ^) c, A; ~6 ?MODULE_DESCRIPTION("Led platform driver");! z5 n- }; ]$ |; c/ `
MODULE_AUTHOR("Tronlong");( |6 x3 Y8 `5 g6 X. B- B& F  s
MODULE_LICENSE("GPL");7 Z- S4 W5 M/ D1 @

4 o% }* u% R+ @- W2 B/ U
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

点击跳转“创龙科技服务通”

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

GMT+8, 2026-1-17 11:29 , Processed in 0.040575 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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