程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
( B! D! U9 I, j$ d% q5 G( ~' y7 i#include <linux/init.h>
4 r* `1 M( M; P4 F2 S#include <linux/module.h>
3 I3 T+ [) K7 o/ ?' ?) `0 Z#include <linux/kernel.h>1 v3 f8 m3 e% N  s1 B, N* S
#include <linux/types.h>+ H% Y3 p4 B' f% G
#include <linux/gpio.h>: D, C+ d7 C5 d% j
#include <linux/leds.h>
& r  j! u/ V2 j6 p( k5 e( K. ]#include <linux/platform_device.h>- V- D  \' d' _0 e6 u, O' w

( v! W& @1 g/ u# z#include <asm/mach-types.h>
" w& m, h0 ?# M$ [# p% K/ g#include <asm/mach/arch.h>% W3 E# C1 Y7 T4 k: v
#include <mach/da8xx.h>& f6 {# Q* i4 N% s* b
#include <mach/mux.h>
2 H! S+ x; c% W& v2 h9 c* T6 S: e; k# l9 ?  O
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
# H9 L& z& X0 q5 f#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
+ ~% s; Q1 t( q' C#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
& e0 G  Y4 K0 m: e#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)/ d+ C& ^' u# o8 m+ Z% n
" h+ P8 I6 S& v" y
/* assign the tl som board LED-GPIOs*/. }: [0 I1 H( x2 T7 p
static const short da850_evm_tl_user_led_pins[] = {
/ {) E; I) O" `: B) R# h        /* These pins are definition at <mach/mux.h> file */
- s4 W; D( k1 `- X  k) X        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
5 o, ~9 g. B- f+ c1 \& L, \6 e        -1
3 v% v. ^+ y% q1 N};
% Y4 G5 ?/ `7 L! n$ o& {; O1 O# ]! r0 b/ e/ Z: d; R2 Q0 T
static struct gpio_led da850_evm_tl_leds[] = {
0 P, i" m# d* y  x( O        {$ f' ~3 T6 X: R- l
                .active_low = 0,
  S$ ?  {" b, S" I                .gpio = DA850_USER_LED0,
" o3 F8 k8 d% J# k* `. g( D                .name = "user_led0",' R* e  a2 p; {% G2 w( g
                .default_trigger = "default-on",' y; W2 c6 B- @  @
        },$ t5 E9 a& Y! `
        {
  w" X: v& w- e- n( b; O3 D% R                .active_low = 0,+ D; P) r" t1 s  _" V" E3 i: N
                .gpio = DA850_USER_LED1,# [7 s9 l6 V& R  M7 \" i8 s6 {: G0 h
                .name = "user_led1",
+ z/ z3 O1 s# X/ z$ ^, q                .default_trigger = "default-on",7 H  b* n( z$ h# h/ u
        },! [& B& @" L; F) C( |( Q. X2 Z
        {% G( M/ G/ X( i3 [
                .active_low = 0,
6 [3 O3 F; \2 x( C0 i- ~                .gpio = DA850_USER_LED2,) X3 A, M: t! n- e1 Z" d9 W- k
                .name = "user_led2"," b9 z% u; D: r' C4 V
                .default_trigger = "default-on",2 C. z/ [1 l8 z  I- m6 V
        },0 _& t: v% q% X" E% s
        {
( p1 g8 Z' R! y5 U* U9 A4 T                .active_low = 0,
( B0 X$ C* v9 C                .gpio = DA850_USER_LED3,4 z7 e6 }( g5 b! v+ X, Q  |5 Q
                .name = "user_led3",
+ u1 n6 {. ?% G" e3 H                .default_trigger = "default-on",
% S- T0 F( k. y0 K: u3 [        },/ ], n  f; W4 @+ L/ H3 N% y& u
};
7 c  E( {. k+ U; \7 [: u5 C
+ \5 J3 Z) Q5 cstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {7 k. q+ y& k6 j+ _7 T
        .leds = da850_evm_tl_leds,
; \, F; X& Q9 u& l; a  C        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),+ c1 X  j$ O" ]
};" G9 s6 j: U- P0 v! B1 Q6 j

. |2 \; {8 I) }9 S3 o: u; |static void led_dev_release(struct device *dev)
- R& n! W2 \6 F7 D' T" ^2 i: z{
3 y$ `$ P- q$ f};
% O0 |% G; e) O1 b. {/ J6 s( T5 v$ q' @  H4 t7 ]. `
static struct platform_device da850_evm_tl_leds_device = {4 P; l$ \: Y  t  O+ e. C) w* ^, p
        .name                = "leds-gpio",+ o( w/ G, [  ?+ V
        .id                = 1," \4 G) g) F) k; t/ g; o0 q  g( Q
        .dev = {
1 \+ h$ c/ [, k! x                .platform_data = &da850_evm_tl_leds_pdata,
+ x" d3 w2 I2 f5 I0 s& I% @                .release = led_dev_release,
- ]' [: y+ E4 K$ v8 E4 c        }. I2 T2 w" e3 a9 k
};$ c2 q- Y- ]1 Y* u& a* j/ Y
( C/ ]4 b4 x, s' z0 d
static int __init led_platform_init(void)% C  M. ]5 M7 B3 S& O
{
. w( A7 e% ]2 v7 H6 i+ ^        int ret;; Z5 P% u2 Z0 z+ p
#if 06 l: G, A( v/ P* U, v6 _' r3 t! m
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
: H3 G' `! ~9 F3 e! w1 E% x, n. k        if (ret)! R* T! C' l2 u* z7 i# P0 j
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"1 r, B9 u; O4 \! a+ g9 i
                                "%d\n", ret);( T: q% Y# a  j& d  S$ v
#endif
. |! Z5 I2 Z" P, j! W        ret = platform_device_register(&da850_evm_tl_leds_device);
# y, a! G& `- D* g        if (ret)
( R# `! ]% d7 X* w) N$ M* k                pr_warning("Could not register som GPIO expander LEDS");2 P! C2 R- c" L8 V1 I
        else
& ^2 G$ \% r0 _7 \# S* Z. g8 G1 ~3 u# g, w                printk(KERN_INFO "LED register sucessful!\n");
6 h* F3 E. L/ l5 ]/ C' @& p! `" \$ A! s* e* T) P" y5 p
        return ret;
( h9 |7 {5 o' |. y" f}
3 t, C9 c. @5 }: T; p% u# `6 q7 |3 V; V
static void __exit led_platform_exit(void)
' ~6 T+ h# d+ ?5 z. E! m{. |: K/ _  g1 h! L$ Z& {+ _4 c
        platform_device_unregister(&da850_evm_tl_leds_device);
- L* E1 z( z, N% q( }
- s# v0 F. c- q+ z: U        printk(KERN_INFO "LED unregister!\n");# S6 G' d" E. D% i, _( N5 K! x
}. q2 R2 F2 W' L- n/ |8 C
3 k9 q" v: }. w# R* q: _
module_init(led_platform_init);+ Z9 ~. A/ s: j4 o+ R$ `
module_exit(led_platform_exit);8 J+ j8 o' Y3 D2 E4 ^- i: X& M+ {  d
- R4 I, h* n3 z- s7 y% Y
MODULE_DESCRIPTION("Led platform driver");
1 S5 v0 ?8 t% k. Q: }$ z+ i5 }# g7 h, TMODULE_AUTHOR("Tronlong");3 n# @) l( z0 _& u( X
MODULE_LICENSE("GPL");
) b( K, Z0 C/ G3 \) {5 f
8 r% o6 b2 d0 |* W/ E  T+ K! w
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-20 23:14 , Processed in 0.036970 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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