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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
0 n) K1 ?2 i9 W. ^; w#include <linux/init.h>+ R" D% V3 y, ]6 P
#include <linux/module.h>% g$ B& G' o% `) @7 C8 p: V4 e
#include <linux/kernel.h>
6 d( _4 i6 v) s' \/ T% u#include <linux/types.h>) D- g; N! ^( u  `' d
#include <linux/gpio.h>3 C1 C( v+ m) g+ x- R
#include <linux/leds.h>. V: l* Q2 M. q' A' X& }3 n8 D' M
#include <linux/platform_device.h>
1 H$ M' i4 Z; U+ Q) ?% d+ P. t; B; ^  @$ Q& T" R
#include <asm/mach-types.h>
! y6 K$ S0 V9 p. z! R8 H#include <asm/mach/arch.h>. y% R! A0 r6 _
#include <mach/da8xx.h>1 T# t2 c4 v" K/ f6 x7 C0 S
#include <mach/mux.h>) z+ J; c9 E) U+ a6 ?6 @
0 p  Z# m2 I! b5 x/ C0 ^
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
: I$ q6 @' q# i$ `2 s! T6 _) m- G#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)  M# J, ~1 r! t7 l, y0 I3 Z/ m9 v! {
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
! i9 W+ l: {. {+ h# p8 |* Y#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)# z$ d) h6 J) R8 \

2 g& Z, p8 z* }  V2 [) k/* assign the tl som board LED-GPIOs*/
3 B# ^$ @: n7 e& F3 }static const short da850_evm_tl_user_led_pins[] = {7 ^- J6 h" g% }: K) i/ U- t1 k
        /* These pins are definition at <mach/mux.h> file */- ~; v, u, B  d+ s! l% k$ _
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
' \' v) M7 v7 C$ J& K        -1
4 _' M7 v$ J" J% d9 {};
6 X  h0 J1 q# e6 q5 @  \* G7 u3 b1 ]+ ^& m
static struct gpio_led da850_evm_tl_leds[] = {' K8 c* J4 [2 P9 o/ _' Z
        {
( V8 Z* o, X3 Y1 g                .active_low = 0,
0 I! B# h2 i3 L9 G4 P8 n                .gpio = DA850_USER_LED0,
  t( h' L# _1 ?: Y4 Z" [5 `                .name = "user_led0",
/ p% D/ `" {; c* T' \2 V                .default_trigger = "default-on",
9 g. ~+ T: [+ a2 q& z1 \4 A, ]4 q        },8 b" D1 J+ X( }' z' {
        {& F' G. y! J& q2 @' Y
                .active_low = 0,
+ w& r: t& a9 p7 {4 M: O$ e                .gpio = DA850_USER_LED1,/ y  X# F  P* x' E
                .name = "user_led1",4 v* x3 K, N, F, G4 \
                .default_trigger = "default-on",
  D- `- w; C% J2 `        },2 b3 e5 z& S- {4 g6 Q+ L+ `& X9 X
        {
. u3 Y* k/ f; B7 v7 a  q                .active_low = 0,
$ N, @. x& o: g% X. n                .gpio = DA850_USER_LED2,
3 [# p* m  @' \4 D( s$ ?( E                .name = "user_led2",
% D0 F' Q+ i; D1 k# E                .default_trigger = "default-on",
% u* }4 P' D6 R        },( p. X: M; v% l$ Z
        {
5 g7 ]* ^* k) d9 V; L" `# T7 X! h                .active_low = 0,; G3 Z' D7 b5 {1 \  o) X0 y
                .gpio = DA850_USER_LED3,
: M$ Y8 D! t0 y$ H$ r2 z                .name = "user_led3",
* i# t% N# l( N+ u& ~# K                .default_trigger = "default-on",
; o9 o0 D6 {' j4 S0 Z" Z( D8 K        },6 O3 H( b. Y) y  a6 D! h" [$ n% E
};! [/ p: d/ R; P9 u# J1 u

& C; ^+ Y: k( X/ r( Q* vstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
- H$ i; V1 i5 S; v# F; O: B        .leds = da850_evm_tl_leds,
+ ~+ y+ r- Y' G" b4 u. ?& \        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),' J$ d4 Q5 h3 w" w: @
};
0 W) B* m- i- r1 B$ C1 A! s8 }/ m( L$ r3 T4 \/ h) d& X7 B7 ~
static void led_dev_release(struct device *dev)
0 W4 }* N$ F3 R9 O1 _8 U" k* o{
" m  o" N5 T+ ?7 h4 ~};+ }- e8 d) |7 \. d
7 [1 ]2 L% ^+ H8 X  F1 B
static struct platform_device da850_evm_tl_leds_device = {
+ b6 _' X4 X9 N( ^: R- K, f* Y        .name                = "leds-gpio",! X4 Q  B0 ]. F3 H; E
        .id                = 1,
0 K0 ]" D3 o: a' b- f        .dev = {
/ S1 ^; d& d: K: i% G/ z& _                .platform_data = &da850_evm_tl_leds_pdata,% l  V+ R: v, O& P) W; m  j
                .release = led_dev_release,
0 {0 b4 f( F$ ]$ k6 ^* w        }/ j  p8 f9 U# |! d& c$ u
};5 L  c1 ^$ v) g& ^/ G3 X
, w: ?3 Z3 z9 X* ?0 ~
static int __init led_platform_init(void)
7 Z0 C/ j4 y1 {7 q{
% B) I3 C2 {/ M" K$ u4 y  u/ E. M        int ret;
2 U% _3 ~# u! G$ e5 u( b& O#if 0  H: w2 A+ H& V" v# X; Q) @7 z
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
3 L! j  f1 H5 ?3 h        if (ret)0 V: @/ \5 D( m
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"/ {: `) }) f/ W$ ]$ h& E9 L
                                "%d\n", ret);' j# }) r: I6 a# {4 M5 V
#endif6 L9 r0 D; M8 U5 F! L' N$ Z
        ret = platform_device_register(&da850_evm_tl_leds_device);8 R  d- n$ E- z0 ]
        if (ret)
9 |6 X- @8 y% G/ A# v                pr_warning("Could not register som GPIO expander LEDS");
: H4 `4 G3 J* B        else
! c0 Y4 n) ], }, g, ^                printk(KERN_INFO "LED register sucessful!\n");
, I' }. [! T% G' k' X- e
) `" e7 p3 r+ @. G% Z0 \        return ret;
. r: Z% P# a9 j% y}
, k' C5 S% y8 F# r% |
2 t# J' i+ {6 q, lstatic void __exit led_platform_exit(void)( C( |4 v% e3 w$ @9 [
{9 C, C; ]) t) B1 \
        platform_device_unregister(&da850_evm_tl_leds_device);! ]; g# h$ p/ }/ f; _' }

+ w% H5 s+ D0 D        printk(KERN_INFO "LED unregister!\n");$ {8 n) \3 [4 y/ M! r2 u$ g
}
7 v7 m9 \: w, D# |8 h6 d; M* c
& p1 F) b  g) E* U) L4 Lmodule_init(led_platform_init);+ ~' u8 f9 y$ \7 I# B/ p
module_exit(led_platform_exit);
$ T0 d. \2 I4 |9 x3 [, p
+ N5 b( N3 U6 vMODULE_DESCRIPTION("Led platform driver");0 ~, M5 \. g' P7 m0 O' W
MODULE_AUTHOR("Tronlong");: K. m* G& S# ?- q; h0 V4 L
MODULE_LICENSE("GPL");1 t& l, P7 [$ k) v
. x& o9 L! L0 _& ^8 B
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-28 22:26 , Processed in 0.052124 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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