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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
+ W) J1 u) m# M% a* N$ L8 O; z#include <linux/init.h>
% u+ z1 E) }% P. b0 m#include <linux/module.h>
; n2 V2 E( L. S#include <linux/kernel.h>) l% l" z; }: [3 \( i/ G
#include <linux/types.h>
7 b. X6 Q) H+ r0 P#include <linux/gpio.h>- i0 `' c0 i; d
#include <linux/leds.h>1 B; X& [0 J+ V+ L; X, @. s
#include <linux/platform_device.h>. V8 {) a0 a* V  F
- }( g/ G  q( }: T4 Q; O. z: e
#include <asm/mach-types.h>% c0 h0 ?. r5 u9 i: c
#include <asm/mach/arch.h>
1 `. u' ]: S. u#include <mach/da8xx.h>9 h+ H) P& ^# k, v4 N  Z4 i1 z
#include <mach/mux.h>2 @# G- s: W/ z7 F/ A. y% ^" l

' h; n' Y: @& N9 D( x#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)  E# A# W/ Y) p7 i! A( ~* Q- q
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
  k- o% e* V4 A#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)' x; ~+ X. V: ]1 s% u
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)- _- |) G8 E2 S
1 Q; w+ [8 y4 ~  v/ X- r- ]0 a( }+ d4 Q
/* assign the tl som board LED-GPIOs*/  U: z3 W: ^, O% f/ |
static const short da850_evm_tl_user_led_pins[] = {5 k8 q/ J) S# }# m2 z) |
        /* These pins are definition at <mach/mux.h> file */
" R: M: P& a5 v4 O- X" p7 v. b        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,* r: J* b7 d4 P1 E- q( G
        -1/ h; l6 E0 f- ]/ @6 j
};8 @* \- z* b$ k, A0 l
; ]  |: P+ `. z, P
static struct gpio_led da850_evm_tl_leds[] = {
3 h; o+ G0 B& K5 Z* F3 |        {
4 B) t2 J6 h5 q( [6 f4 a' X- A                .active_low = 0," ^0 z" Z9 T. B# o) m6 ~
                .gpio = DA850_USER_LED0,
4 }( L# g. p9 y% }                .name = "user_led0",- i  B9 g  @& ^: Q' k
                .default_trigger = "default-on",
; G. E, _2 j4 Y! M        },: W$ L& J4 c& }$ I. k' Z! ~* J
        {& V8 Q* Q" P; p. s4 `
                .active_low = 0,, z4 u; ~' `! t2 i* h" s
                .gpio = DA850_USER_LED1,
( J& ~- B+ U- `8 w9 V: {                .name = "user_led1",, q5 T7 `) D4 ^& u$ e
                .default_trigger = "default-on",
, y( Z6 ]6 q6 |. z1 I- X* b        },
2 e' p: @( G: o0 x& {0 S+ c0 t* P' T        {
$ j4 y2 y9 u; G2 `2 b* @8 _. I                .active_low = 0,4 B' A0 {  K: m
                .gpio = DA850_USER_LED2,4 f0 X& p7 N' s- y( w4 c9 y
                .name = "user_led2",( c( @% a- X: {2 r# ]) @& H$ M$ K
                .default_trigger = "default-on",
& ~) q: t1 S) f! E9 K: g        },1 q3 q4 f' m" r8 d6 l3 }# I
        {
# X9 E9 f. u4 Y. a0 }3 h9 Q                .active_low = 0,8 H5 Y1 T, P- L3 W9 C* P9 Q
                .gpio = DA850_USER_LED3,; T- I# ]% o# B0 \# C+ L
                .name = "user_led3",: R. }2 j# o6 w; D' _/ I
                .default_trigger = "default-on",
4 t$ ?4 d3 J4 ^$ U  L        },: C4 o) |$ n( W1 q) S9 J  l
};
% n4 h( y9 z2 [7 m) |, F* B% E( D- K- @8 a
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {1 M7 m' L6 D3 q+ L. a" _2 g, B
        .leds = da850_evm_tl_leds,
5 N. Z% g5 o3 o1 ^% C        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
. o0 j- K1 ~8 p};' ?" P/ ?0 k* V& \# F

& @- m5 X7 X+ N$ u: _9 O$ _static void led_dev_release(struct device *dev)7 S, D5 c* v5 G' e7 c  T; z, Y$ R" {
{! j6 u2 v7 ]5 {5 Z5 L
};
' g! T  ^" l! Z& n6 t! i: M5 o; x. a6 }" w: T4 l8 V! F
static struct platform_device da850_evm_tl_leds_device = {
( T* y1 L1 }) |2 q% j        .name                = "leds-gpio",
, _  w1 \5 _- U0 t5 i, |6 P7 a        .id                = 1,
+ @& ~3 }4 ^# M  \7 n$ p        .dev = {/ R7 L7 h; I2 a( }; b
                .platform_data = &da850_evm_tl_leds_pdata,
1 t8 f( ~# s; \/ f                .release = led_dev_release,: M+ a% q+ q0 P+ f& A
        }
# a8 P1 b- T* v};
0 Q6 x! ?6 @& `7 h4 r0 x3 _2 z: B3 L* |" ?  D( [+ y0 m
static int __init led_platform_init(void)
! R3 z+ z$ F5 ^( H( F7 H' T{
& S3 [1 q7 g' C! U! t  i' i        int ret;
& `+ t1 V: B( U/ z3 Q( d#if 04 t& c! |9 r& Y% T: L' L
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
* M# g* j' n3 q" V' n* ^3 s. X        if (ret)" N3 X  m6 Y# b& U7 o3 V, s
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"" h" F* j8 ^. q9 y8 V
                                "%d\n", ret);* g$ g: C) b& @
#endif
5 }2 i) Z2 d5 d! Y, y, X! P        ret = platform_device_register(&da850_evm_tl_leds_device);
( L, ^# s# O# T1 s  t; m        if (ret)$ l: t- f& u+ a# q" @" j' c
                pr_warning("Could not register som GPIO expander LEDS");4 [: i- V0 k2 d  f6 `7 z) @7 {- ?
        else  t' C" a) B0 }$ y" f
                printk(KERN_INFO "LED register sucessful!\n");
' @: V- F3 |3 Y5 E5 x& j" q% H9 ~# k' T+ |' Z
        return ret;8 l3 s/ |- u8 J/ ]  u
}
. d0 j7 I8 ?! ]. d9 ?
) q  `2 C' v: W' M1 i: X' Istatic void __exit led_platform_exit(void)
% ?0 e8 i6 X% o8 y! J8 A{. d1 ?3 q/ B) N1 ]1 e$ x6 q" m
        platform_device_unregister(&da850_evm_tl_leds_device);( o- d3 E# W3 V/ k- E9 U3 @

' r' t7 U6 T& i7 W' H" F- a        printk(KERN_INFO "LED unregister!\n");" r1 I; R6 L" ~  I- e$ `# _- L
}/ f* C/ w$ h. G9 m
! k/ E1 g) {9 i% L5 B+ c0 h( B
module_init(led_platform_init);
* X* o9 ^! O5 o- X/ i( ymodule_exit(led_platform_exit);3 w- W# k( m7 _6 Q

/ O; Q' A! z% KMODULE_DESCRIPTION("Led platform driver");9 I! Y+ ^& Z% |$ U" ^. K( Z
MODULE_AUTHOR("Tronlong");
, l- ~. d7 _. WMODULE_LICENSE("GPL");
+ c& p' _' C9 M1 H6 A1 q+ u8 x% H- ~& A/ \, Q5 S) d& t7 O. }% g/ l
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-2 02:03 , Processed in 0.062682 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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