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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
) y( m# {# F+ Q- u% Q% s; o  v. |#include <linux/init.h>% k) N0 h  y9 ~, Z0 i6 p( z
#include <linux/module.h>
+ I2 ^0 G" {2 v# _* l& v#include <linux/kernel.h>6 r$ J5 w- L! \0 j5 O1 o
#include <linux/types.h>" Z) V  B( [4 @. Y: y: Z: Z
#include <linux/gpio.h>
% n1 `+ I2 a+ K" S7 \" J1 h- F: m#include <linux/leds.h>
1 y9 e; F. Y1 n; m* A7 w#include <linux/platform_device.h>- P4 Z& R  x6 r: U- m9 u

( z3 E4 D6 `# v, W#include <asm/mach-types.h>1 K% e* a" z8 Q1 h
#include <asm/mach/arch.h>
. T9 G% c) @; F* o#include <mach/da8xx.h>
) c* `" }4 W* h- _+ Z#include <mach/mux.h>
' ^/ T% i  i: m# u4 g7 s. @1 Z8 \, r
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
3 U, w8 C5 t) a& v8 ^#define DA850_USER_LED1        GPIO_TO_PIN(0, 5). P$ i& y5 q. r- [$ J* |, J6 C
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)* ]+ s0 k# b0 F1 w: B% J
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
; D  n* K& O4 ~: }5 d
* E+ x: a1 L/ e* _/ C% S# z/* assign the tl som board LED-GPIOs*/
6 |$ z+ p/ a8 P* i5 Estatic const short da850_evm_tl_user_led_pins[] = {# L* `- i: r7 i
        /* These pins are definition at <mach/mux.h> file */
' f# q& M0 \7 u3 p. e) V        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
. U8 {' M+ S" [- H        -1
) I. Z5 @1 @0 L2 u};
, K/ Z. v- \* d4 [9 p% h6 a) P3 t. W8 U
static struct gpio_led da850_evm_tl_leds[] = {
- H1 o$ j1 \4 P" j8 M( T        {
, Q! ~8 F; j- M# L, l; K                .active_low = 0,1 `8 I1 S* g* S1 c5 S  v
                .gpio = DA850_USER_LED0,
* O6 f% g# ]4 {3 S+ E  [+ Z                .name = "user_led0",( c% x" H7 w) N* Y4 y; v
                .default_trigger = "default-on",4 ?6 p5 f) G! j$ l4 @
        },! U/ @( c* h& N7 ^0 r
        {/ V* c- D2 X0 ?2 c
                .active_low = 0,
$ P6 S; n  ?/ G4 g                .gpio = DA850_USER_LED1,
* _/ m2 S0 J+ G, W8 o, k                .name = "user_led1",
/ q- B4 N) O$ U* I" Y+ m) d, Z                .default_trigger = "default-on",+ O% M2 t2 p9 x3 C  k' Y7 x1 m
        },
1 x. u6 o+ o& I8 ^8 f; @: j8 G        {6 f! z3 D1 k. S) j% K4 t
                .active_low = 0,
& s& k) q" U. i) u                .gpio = DA850_USER_LED2,
" C  K6 k5 H  C6 [4 b$ u( V1 E3 ?                .name = "user_led2",
6 j5 D1 C2 S0 ?9 p# E! _8 E5 h$ g                .default_trigger = "default-on",
5 i) a: t$ s; S& d5 ?        },0 [% t) y: z6 g3 @- X
        {
4 s$ r+ `' d  m. k                .active_low = 0,4 I; y$ g* ~/ i9 n
                .gpio = DA850_USER_LED3,  P4 e3 ^5 I* j+ j1 W, ^
                .name = "user_led3",
4 G8 H4 J+ u  D  l! C; V                .default_trigger = "default-on",
; \) o7 y# }/ d& Y  m        },2 H7 Q4 G7 u6 r  z7 m
};1 i6 d3 o/ n3 X) j# C
, f' }+ n$ r3 H0 L. S. E+ |4 E0 z& {
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {( |5 t% u- q/ H4 e4 o+ l4 J
        .leds = da850_evm_tl_leds,2 L6 V; L6 d2 C
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
' y( H5 l! l% G};
* q# k! U. z: N7 X  N+ v' d/ i6 }2 `. l/ Q1 @* y
static void led_dev_release(struct device *dev)
& N5 e/ y% y  u5 W# Z2 w{
& h* ]! `, A( O& v* I: z};. D6 M# c, M$ `$ R0 ~4 r
/ j& K6 Z" v( V0 U' }# [
static struct platform_device da850_evm_tl_leds_device = {1 z0 I: T2 Z2 i
        .name                = "leds-gpio",
& d# h7 O: r0 A3 u( \7 A9 ]- Q. [        .id                = 1,$ e+ |+ P$ M' c; [+ _7 x( ?4 ?( g2 _
        .dev = {
2 v" c# y6 Q/ K  J                .platform_data = &da850_evm_tl_leds_pdata,9 ^3 B& C- m. E6 j; X4 `2 d& m" X
                .release = led_dev_release," I  S8 W/ P  E9 A, H& A& g$ h$ G" G
        }
, G( L6 j/ B2 m( R3 U: b};4 g- c; K' |6 v5 S) }: s

9 m( D5 K3 d2 \$ b4 F" g8 f* I4 Z' Gstatic int __init led_platform_init(void)1 j9 u+ Z% i- j. p4 ?$ X' k% k
{
4 s% L9 A& Z1 Y2 Z# x        int ret;
( ^9 |5 ]* Z& N( o5 R6 D#if 0; k, p6 q# X  h1 P5 D
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);8 ]( E5 ]; v3 q$ T5 I: D8 a
        if (ret)9 i+ t: G7 Y+ I5 F- N- R1 u/ i
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"" G: z1 ?& {% {# M; _
                                "%d\n", ret);# J# q4 ~6 {9 D6 a3 W3 |
#endif  B( j. O; Y6 ^9 p  V& G- r8 z
        ret = platform_device_register(&da850_evm_tl_leds_device);+ z6 \2 G) _  x" j* }" @
        if (ret)
) r* h0 [! P5 q6 m' A                pr_warning("Could not register som GPIO expander LEDS");. u) R" w) p# M; e+ g6 p
        else# E8 y7 w, x- `8 M$ m
                printk(KERN_INFO "LED register sucessful!\n");
3 Q7 ~' C  u8 r: h1 @2 T" C# V, U. F* n  k( M! a
        return ret;: }( ~5 s. H, g" V* ~) }
}6 [0 v2 f3 M) a2 M" E2 m

. R0 K) n5 G/ Ustatic void __exit led_platform_exit(void)$ d4 x. c% S1 z+ H9 Z# H; j
{
# `, ?7 {1 O0 \! B9 K; e  O        platform_device_unregister(&da850_evm_tl_leds_device);
! o" m* R$ f2 m3 t% \+ i( h5 f0 F" f) M2 u9 W7 H1 U! R- Q
        printk(KERN_INFO "LED unregister!\n");
2 r& y; p" V' s7 h! y}
% V, }1 o3 D/ }
! V: ?0 J3 S# P% gmodule_init(led_platform_init);
$ X: b7 y6 `: ]module_exit(led_platform_exit);8 c" M  k: j6 y% y7 [! C
' x% _- B. j2 @+ U2 g, w
MODULE_DESCRIPTION("Led platform driver");
( l$ I* S+ {4 u8 u  k+ BMODULE_AUTHOR("Tronlong");" |& N" ^$ n/ c7 _: K- s* f
MODULE_LICENSE("GPL");' }$ {8 V) N+ O) s( B* \) z) C+ S- y

( b; u, T& L% P) D3 M$ }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-15 08:28 , Processed in 0.038580 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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