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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
" p  f3 O& F& C" g#include <linux/init.h>
6 U8 P: P$ Y+ q#include <linux/module.h>! R) D( H  A" ]% [& c7 t
#include <linux/kernel.h>
% ^" ?4 u- t# a. x: A6 y#include <linux/types.h>
+ R8 c& |. P& S7 u! H- B#include <linux/gpio.h>
6 K/ U5 @3 w2 ~5 ^* x4 X#include <linux/leds.h>
, g7 @3 H4 {- m$ a' I- u8 F#include <linux/platform_device.h>
: p& w/ ?5 v/ t! }# x, e2 ^6 G" k' l: O+ n
#include <asm/mach-types.h>9 k* g5 e7 q. B8 P4 d' o
#include <asm/mach/arch.h>  O2 `$ d% B+ D2 f
#include <mach/da8xx.h>
8 R: e. B% Z# U3 m6 `+ F- N#include <mach/mux.h>
: \/ I7 M0 w5 \* ]! ?5 y: Y7 X) q# C  S7 D
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)% l( s7 s' c1 G7 I: p9 w& ~. O$ m
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)) J8 S/ z' b3 R
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
/ D" @4 I! x' Y* G#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)) K. g  x/ ^; n' V2 L- w

; E# y5 X- w0 N3 C" Z5 W; Z/* assign the tl som board LED-GPIOs*/
3 M3 B/ L# {" b  E( N3 istatic const short da850_evm_tl_user_led_pins[] = {
8 `7 y( F% b& v( N+ k        /* These pins are definition at <mach/mux.h> file */
  ]; {+ @$ m1 Y7 @7 J  U" O        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
9 u  h: f+ ?3 I        -1
/ |, A+ B" N: r" D, q};
# s" r! ?0 z# C5 e4 d* h& T1 M7 ]
7 j. i3 w6 I$ k$ @, q7 M+ ^* Estatic struct gpio_led da850_evm_tl_leds[] = {- d( Q) H8 b  p* w% q: F
        {2 s- v1 g5 H3 x- j  Y
                .active_low = 0,  n) i2 `  g3 ~4 _* Z( K( k
                .gpio = DA850_USER_LED0,- e! Y' x, z- F5 u9 k: _  M& E$ P
                .name = "user_led0",
: G/ I$ r$ h' z0 N$ a                .default_trigger = "default-on",$ j  A0 h+ ?( H/ r; b- O) V# ~( J
        },
* C. ?6 k$ u5 J. e5 {* `* |        {( ^! Y) i9 j0 A2 _; K: `
                .active_low = 0,/ L0 |% V) _: ^0 v% @  Q2 o
                .gpio = DA850_USER_LED1,
; O$ U9 T+ K/ o: Y+ D: `% `                .name = "user_led1",
: b" N" X3 Y4 }- ~                .default_trigger = "default-on",* G- D) F3 D0 c& m0 |4 _$ @& S
        },! Z+ T" Q. Y. E5 k$ [3 |
        {! y( Y" ]! f, w5 k# |* G" r
                .active_low = 0,0 m0 R: n6 k& V
                .gpio = DA850_USER_LED2,
3 K3 @) \: k4 K: X& u% i+ O, e                .name = "user_led2",0 Z( N* X, M, {
                .default_trigger = "default-on",
' a3 l* H+ S8 k% Q# V0 x        },
- [" @+ [% D8 w4 s. ^        {
6 T( X. \' r2 g5 ?! E                .active_low = 0,6 R5 J& N5 K5 q6 i) v9 t! e' |( {% M! n
                .gpio = DA850_USER_LED3,
) w6 K( L" A1 O6 s7 ^) p# ]                .name = "user_led3",6 N5 {# B8 O( r' u) ^
                .default_trigger = "default-on",, _. {2 c9 ^9 V7 E4 n! r* y
        },' k# g2 k. E4 O1 x/ C- M! [+ {
};% e0 k/ n4 w9 F$ U$ p

. |( Z0 b0 `& K9 xstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {( I3 ?: D0 I, X5 _6 S: D
        .leds = da850_evm_tl_leds,
$ L0 d1 ^4 t1 v0 f! {        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),3 [2 X* y5 b: w! I" j
};
' V, L8 p# E9 F7 m9 B, V6 O; q' p, D" R7 Q  b
static void led_dev_release(struct device *dev)
8 g4 Q; O! J2 O8 x{
9 k7 A/ o: h0 U" T/ h) K& x};
/ p7 d+ \' @3 Q( S6 R. Q! h
( r+ D% g4 |2 Ystatic struct platform_device da850_evm_tl_leds_device = {
3 e9 \, G2 v" @, A* Y) P% i        .name                = "leds-gpio",# U1 `1 m# }( H# H, V4 V
        .id                = 1,
+ t( y6 |5 M! N/ S4 q0 m2 V        .dev = {
# z1 }% ^( |+ @* d, ^7 q/ Q                .platform_data = &da850_evm_tl_leds_pdata,
+ w1 }3 ]( R0 ?7 q                .release = led_dev_release,. h% f* V& L8 J) |
        }; }9 `- z/ n- M* f; P+ B% I8 {) v7 r9 e
};
; M8 s' `+ s6 K, [
+ j! a/ W' N" K# f; L1 y+ k( Q9 Hstatic int __init led_platform_init(void)' w) A, J2 [" [; R+ {, s9 A- N
{
' u  Y1 Q& m! P        int ret;2 ^. L/ Q' F- q2 r) a& z) m2 m
#if 0
' _8 b- @; z# m) d9 j# k+ ^        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
4 n! R4 V' Z8 K        if (ret)* W6 ]$ ]* f. |  `, X
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"$ w/ Q* z: n: i  \
                                "%d\n", ret);8 S5 N% v6 O9 ^/ I9 Y% t, H
#endif
7 t' b  x+ D: r) U        ret = platform_device_register(&da850_evm_tl_leds_device);  d8 |9 A# V2 u- W. p: @! N
        if (ret)
( Q% o  n( ]$ s/ F. [2 b5 n+ ~                pr_warning("Could not register som GPIO expander LEDS");. I9 F9 }1 A1 U. z9 e
        else. z" O. \2 c! `- H5 \& J1 }
                printk(KERN_INFO "LED register sucessful!\n");
# I# I* s8 I0 e+ S
' Y4 p, |* P. p7 y. t        return ret;
& R/ i5 w; O' I) I) F# u0 C}7 P/ K7 y5 c' h( W/ A

5 Q7 G6 o- Z1 {' {" A& Y* jstatic void __exit led_platform_exit(void)' Z: d/ b  d6 n' b% {1 o
{8 _  {9 e! N0 O/ C& _
        platform_device_unregister(&da850_evm_tl_leds_device);
8 I9 b7 X8 O6 ~7 f# K6 p+ H3 f' T5 A- u8 D
        printk(KERN_INFO "LED unregister!\n");- P9 Y4 L' V. H: c
}
) a/ F7 O& i$ e) A8 s) w7 {" b8 ~, R+ k8 s, h
module_init(led_platform_init);
- R& L4 t1 T. R$ D4 k; M  e! vmodule_exit(led_platform_exit);1 i( y) @3 v* g( Q

9 N( _6 ~' q6 Q# Q. o% LMODULE_DESCRIPTION("Led platform driver");# s- r( N* G7 y9 y) P1 S2 W
MODULE_AUTHOR("Tronlong");
; @1 H, e$ l/ EMODULE_LICENSE("GPL");! b! I( H: z7 ~0 F

8 V1 V: }5 k& B4 V2 \
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-17 19:49 , Processed in 0.040283 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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