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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
* l8 |( [: X1 y6 C4 b) x0 V#include <linux/init.h>
% b4 K& A" \: k# k7 I$ g2 p#include <linux/module.h>1 e6 C1 k5 j8 W2 @& h8 j
#include <linux/kernel.h>
0 G* g3 t7 G) _& |#include <linux/types.h>5 k) U' S" Z3 n1 m
#include <linux/gpio.h>' |( ?, `, ~# Y
#include <linux/leds.h>
4 D+ i' n2 j/ G: |' Y#include <linux/platform_device.h>5 E. \- k  r2 L4 t
) e3 D. k5 Y0 S* V4 z
#include <asm/mach-types.h>
1 n! p0 C1 ^2 q# p#include <asm/mach/arch.h>& L4 `( _. w* g* Z
#include <mach/da8xx.h>' H0 }7 G: ~* ]  H1 c
#include <mach/mux.h>
) ]& H( z* T( I8 \1 v% H6 v  R' w6 |! [; ~# K, G2 U
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
4 e8 Q# V/ r/ ?( g6 v7 B# A, T#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
9 s0 n3 K- Z# O#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)1 n" |+ z, F4 q0 _
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)0 B/ D! M/ j7 a9 Y. M0 `

3 v8 {& s/ O# S- i/* assign the tl som board LED-GPIOs*/
+ a  K6 f/ n' @) n3 |- Astatic const short da850_evm_tl_user_led_pins[] = {
# }) [3 C2 E% r9 n5 C- M        /* These pins are definition at <mach/mux.h> file */7 p) A. B: P; g+ U) o# J2 a; _3 J
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
# P1 K4 C3 W) l8 v        -19 i  M; I+ l! [0 Z+ a+ C
};, k9 B) ]7 P3 c3 g. o: O; E
( E: z( k$ l3 j7 v
static struct gpio_led da850_evm_tl_leds[] = {2 O, a. z2 K( x  M; p3 {
        {
6 T  T$ e+ q5 m( E. r, ~- P                .active_low = 0,  P' |) X" d  m% W# l
                .gpio = DA850_USER_LED0,; G4 E% U. F4 R% t/ K
                .name = "user_led0",
  Y2 A5 ~% A9 c2 x                .default_trigger = "default-on",9 V: H2 n; L5 n: z; e: d
        },# Q$ L& B, e; Z! z3 k
        {
1 {4 r4 a8 N: L9 Y                .active_low = 0,; [; z" k& [+ d7 O% V0 j
                .gpio = DA850_USER_LED1,
/ ?3 b* X' C8 H! t1 Y) r/ G+ K! W                .name = "user_led1",; g! `9 ^; J5 Q( Y. k- O
                .default_trigger = "default-on",# B* @' F' B; |* G% e
        },
+ ^  j% q. J# t5 K3 s! \$ C        {
& O8 j. o$ m! D6 O                .active_low = 0,
( X; ^& {6 A  m                .gpio = DA850_USER_LED2,; O" \0 r0 ]7 V0 n; c* J  w
                .name = "user_led2",
2 B0 k* ~/ d/ Z* e" d' [                .default_trigger = "default-on",. b4 [) g) A, M  B" A8 U* U. @
        },
4 T/ L& r# b$ u# j        {+ Z: R( Z0 j% \* ~4 x4 Q
                .active_low = 0,
) \$ o4 q. Q# B+ B  N" b                .gpio = DA850_USER_LED3,' X0 k  M8 [3 X0 A' l' q
                .name = "user_led3",3 i7 [. w+ w( i; M, ]1 f
                .default_trigger = "default-on",
; @; l, W/ q# K. v7 q+ |4 \. _- Y        },
! b3 u& {7 c0 b& A/ W};! N) k( p. E, c5 f3 U

# A; u; W0 q. n, D# j0 z1 Xstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {6 H# F; s! L! }8 F/ Y3 [) a  d
        .leds = da850_evm_tl_leds,1 `) N; [  V) q' T
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),& b5 r9 p" F/ Z, S5 s" I" Y
};
  s: i6 _8 \  ?; |5 J, X, ^$ w2 o. z, a# n6 k% e. J# \
static void led_dev_release(struct device *dev)
$ u( }2 A$ T0 O, W3 Q{* }! x1 s& i. E( w/ Y/ ?/ N
};
6 @) y. W9 ^% ^
/ p/ z$ E. q6 m1 S  ^$ }static struct platform_device da850_evm_tl_leds_device = {
6 H% d/ o7 e, i7 ~; r- J$ _        .name                = "leds-gpio",
* T5 W0 H' ?8 n        .id                = 1,' [% U4 E) ?& S7 W! X& ^; e
        .dev = {
2 S$ Y% J/ z7 E                .platform_data = &da850_evm_tl_leds_pdata,
5 m: W* J8 Y* L% a                .release = led_dev_release,8 W9 ?2 K! a) a- \' T* z
        }
3 G4 \" ]# C' [9 u. s};) ^' q1 ~* {* p4 o. F4 T+ X

: Z! C) ~: j, Z: Mstatic int __init led_platform_init(void)" d" f, r) Y, z- c7 T4 o
{
& v3 r7 B8 j$ n% v# A) d* V: h        int ret;( T( i9 z; \' |; i1 D! Y5 i
#if 02 L2 k* j; B* F! l; Q
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);  D0 P( N  b) K8 C
        if (ret)9 m. X! O- ^! s. d' @0 q4 l
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"8 q5 X8 A) [# e# s* p+ y) w
                                "%d\n", ret);& U; d- x: ~# M' j3 }7 }
#endif
, C$ Y5 ?! w) ?        ret = platform_device_register(&da850_evm_tl_leds_device);
' X0 _  w8 U2 Z4 F% x+ T        if (ret)
9 y9 K, \+ l7 R8 H# Y; s  B- K                pr_warning("Could not register som GPIO expander LEDS");: W1 v) K- {  J# d& C
        else
6 {2 l4 U) c+ Z6 r, [/ U& U                printk(KERN_INFO "LED register sucessful!\n");
# _! ~5 }0 J0 ?" e5 }8 s
. K' [( r/ {; V! F' j        return ret;' W  d( P# w; }, v; l! J" u
}8 e1 }4 u6 N" i* P& A# j1 F" ]

( y9 ?' ?7 v: fstatic void __exit led_platform_exit(void)  ^8 q% _9 s. Z% a6 F
{
- K1 C: i- {# z8 @& s1 `' U        platform_device_unregister(&da850_evm_tl_leds_device);
; V% q5 X  Z0 E$ m' k# S/ D9 `, c( v3 J* t2 \+ K
        printk(KERN_INFO "LED unregister!\n");$ V" }9 U" {4 O( h
}2 O; i0 y# H# p" d

2 J3 h& g6 F8 g* e( o9 Vmodule_init(led_platform_init);
% D$ |  B3 }' J$ H( Pmodule_exit(led_platform_exit);
% V; q) O  C) E7 @: c% K8 c) ?1 `! X! U
MODULE_DESCRIPTION("Led platform driver");3 g: R. n; y" v, T% ~. e
MODULE_AUTHOR("Tronlong");
5 t8 L6 I4 Q3 i7 e; hMODULE_LICENSE("GPL");  U# H. J: Y, [4 j" X: _

2 }' s  d' i( F$ v2 {) y2 c7 n
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-1 14:36 , Processed in 0.038518 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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