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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。( G: i# w- A* Q! e
#include <linux/init.h>. n9 R! I/ a. l: x* N
#include <linux/module.h>) ^/ p& t# y0 ~
#include <linux/kernel.h>
3 V: W" P1 R9 l4 \( y1 B+ Q& Q#include <linux/types.h>
4 U1 c( e7 Y1 \! M0 f#include <linux/gpio.h>
8 a, P0 N' c9 w5 b#include <linux/leds.h>! ?7 [" k  |/ ^- k
#include <linux/platform_device.h>% n+ F2 d) e% ^; L  I  E1 H

; s+ M, ]9 ?" Z$ A- j#include <asm/mach-types.h>9 S6 R) F6 _0 f
#include <asm/mach/arch.h>9 ?. \' q' Q" Z( @) A: \- C2 C" i8 v# e4 y
#include <mach/da8xx.h>
. w- U- q5 ^) W#include <mach/mux.h>
' i/ A& }2 [* w0 G: x* R/ f. w8 k& _! i7 m
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
' @3 v  B2 ~/ j4 g6 V#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)# y- h+ ]3 y% N1 m1 j
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)6 G4 A, A- J/ I0 t) T
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
# |! o7 S& b9 S$ u! z& o  _* n5 D' a( I/ x9 f
/* assign the tl som board LED-GPIOs*/, k% @7 u6 k$ V( _0 w* T
static const short da850_evm_tl_user_led_pins[] = {
5 K5 ^( F% C! |4 W        /* These pins are definition at <mach/mux.h> file */% {* v) T9 i! W, P( C- [
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,6 x6 ^: T( J2 [) s: B
        -1
1 P* T# j" N  ^$ K* f};% d6 E/ i5 a9 O1 k' g
9 [4 d. O9 ?5 _
static struct gpio_led da850_evm_tl_leds[] = {
0 _, x4 G# l) ^% Y& `" o1 [        {$ d+ }4 W7 Q9 H) Q( ]2 r
                .active_low = 0,
5 w% E% p. f5 T5 j4 R                .gpio = DA850_USER_LED0,
" q6 i) a8 b4 e; Z+ w/ X                .name = "user_led0"," d1 d. L9 i; @$ \: ^1 s: N
                .default_trigger = "default-on",. K4 _0 L" _& C8 X5 K1 Q3 g1 W
        },) ?; L: p7 p: q: B' n
        {( r; c# D! q8 K4 j! n$ X
                .active_low = 0,9 n3 U) A5 `/ }) m; _8 `
                .gpio = DA850_USER_LED1,
! D8 @! N* O, l$ {( ]                .name = "user_led1",7 z$ @' Y' N* u. \4 A2 X
                .default_trigger = "default-on",
8 i( P' w; G5 m8 F1 b; s0 W9 i$ v. n( ?        },7 ]/ J7 y5 I# ?4 j( G0 e
        {
& y. @+ z! k7 R                .active_low = 0,- `3 Q# Y2 d2 x' \, m  G
                .gpio = DA850_USER_LED2,
7 l; s  z3 n+ Q, K                .name = "user_led2"," I; Y5 O! X% P2 p$ G/ x- e1 H' w
                .default_trigger = "default-on",
0 V# {; K6 G+ c& F        },
% S+ {( E) p! \6 j! j7 a! r1 `8 {        {0 v5 r. G1 _! h
                .active_low = 0,
3 p4 ?9 D6 ~' o' o5 S$ S+ M/ z  N% V                .gpio = DA850_USER_LED3,
) `; }2 J3 N# O* D- e                .name = "user_led3",/ N! X& C  E7 t5 k7 O4 E
                .default_trigger = "default-on",
9 G' D$ }6 K' o        },9 Z7 G3 B, v, K: d- c5 K; }, h- z
};
2 _5 m% `9 |. R2 D* Q* b: ~; U% i9 y: \
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
. @+ r3 S* |  P: [' o        .leds = da850_evm_tl_leds,
3 F0 S3 q: M) s3 G4 h, @( g3 g        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
7 s& O4 Z( U5 s- l: l0 D};
9 ~4 ^) w* @8 ?
, C2 J+ M9 {9 K2 a% Q% g8 V. nstatic void led_dev_release(struct device *dev)
  D7 d" H  ^7 C{
% Z  ]7 G2 M7 v' Z( _3 l2 h9 W5 u};) a/ A8 S* p4 F+ A

9 X2 S3 b5 I# U" w$ J7 ^static struct platform_device da850_evm_tl_leds_device = {) h- F8 {* y; |; H# R: U
        .name                = "leds-gpio",$ u( q* }* X* s1 }2 D' U9 k
        .id                = 1,
+ q9 H3 d6 p8 m        .dev = {; ^- @& @% T2 K0 z5 {" y
                .platform_data = &da850_evm_tl_leds_pdata,
' y: m& c1 \/ l7 s! @                .release = led_dev_release,
4 f: q# _3 n  k1 j5 a( c        }
! H, h- X$ E! r, w5 R6 Z};& F5 }/ D: }4 r5 L/ H4 ^

. n, @! f+ I9 {7 G- D* h$ ?8 Ostatic int __init led_platform_init(void)8 @5 X% S; Z: e. s7 |0 R
{
. v# P, z+ H% G/ X- U/ D4 `        int ret;2 Q9 z% `  I5 @$ }5 Z0 D% \
#if 0
+ I) T8 k) o% H- z! w        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);; x+ a5 S1 D. m$ }  k5 y9 Y
        if (ret)
( d! r8 |& S+ b8 a! [& I                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"2 z0 b4 l, w- ~
                                "%d\n", ret);
6 ?/ F; j! z' O#endif! A. S, {* p7 f3 Z! Y" I1 t) [
        ret = platform_device_register(&da850_evm_tl_leds_device);" R/ ~$ G1 ^( N5 j2 K
        if (ret)# L# x4 O8 _% b* R3 U' m
                pr_warning("Could not register som GPIO expander LEDS");+ V4 h2 o5 z' I& v! A. q. P$ j4 ^
        else
/ ]  S; @$ t  R& p. g- j                printk(KERN_INFO "LED register sucessful!\n");
. v5 Z" z$ X1 a% R0 g# L& @) V1 A, N
# i. D, k& ^. D- R        return ret;
# |6 @. K$ [1 u- @$ k}6 [/ M1 ?( J/ ~+ o% u5 p

" B7 s; t# F, ^# p+ Sstatic void __exit led_platform_exit(void)
2 X7 k4 _9 ^' {# w# P4 `" d{$ x) X3 h: \3 n
        platform_device_unregister(&da850_evm_tl_leds_device);- F, z! _$ I! O1 ^

0 \) |/ u$ Z* p; y# _' ?+ y, Z        printk(KERN_INFO "LED unregister!\n");3 k! q: z! b# [/ |
}" }- k9 D2 f/ X/ `/ q8 r0 l4 y& m
0 o- P: {* u% _# I! W  z
module_init(led_platform_init);
. v9 ?7 H3 |( p) Kmodule_exit(led_platform_exit);
4 E  H/ d, _( r, V8 J4 L8 s9 S& o3 c3 Z! N! u
MODULE_DESCRIPTION("Led platform driver");! I9 A& V* M  W$ ~5 h
MODULE_AUTHOR("Tronlong");
: U; n( J( ]9 M1 a- UMODULE_LICENSE("GPL");
* [- ^4 p* j5 R3 K  R
$ J$ z- ]8 x; q+ m' f( C$ E
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-7 06:13 , Processed in 0.045203 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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