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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。0 E! i& h4 w4 e
#include <linux/init.h>
7 Q' ^- @" P% a% i! E0 w#include <linux/module.h>* n& l  e) ~3 z/ {# ^9 ]6 w
#include <linux/kernel.h>
# ]0 C4 y3 m4 P% _3 j#include <linux/types.h>. g' w7 J( q$ R* f
#include <linux/gpio.h>
" n- f0 _1 R! b5 c& C#include <linux/leds.h>
* t& k& W! ^7 p% s#include <linux/platform_device.h>( c; Z) Q% T: y) K8 r& t
8 s8 \0 A. ?3 R/ n8 p2 S) B% K
#include <asm/mach-types.h>* d9 R: B: H7 @9 q# L, j% G
#include <asm/mach/arch.h>$ O. ^1 ~( W; w/ t" z
#include <mach/da8xx.h>, m# k7 D% X2 X) J# x, d
#include <mach/mux.h>, g1 \9 u+ _1 d6 L6 e* @0 i- ^5 C$ ?
3 N" i7 W/ }; _6 c
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
! e( [1 }3 s* ?$ w7 X- X#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
- D" x" D  V+ l: k#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)- y3 b7 z; l, M3 J4 J1 Y' ~
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
8 w% S) M% s, J( I- V. d$ w: }) w, W/ ?4 O6 C
/* assign the tl som board LED-GPIOs*/
, I( h: d' P6 Y* t% S" s, W+ A7 Lstatic const short da850_evm_tl_user_led_pins[] = {& U" j) h1 h, \+ U2 Z- r
        /* These pins are definition at <mach/mux.h> file */
7 d7 A5 l" k3 y" C/ \        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,& J1 \/ x# Z: Q6 N2 v! {0 X9 H
        -1
% P! |4 X6 p2 O# s$ H};
: R; D! F% I' x8 j( O. f  N; N* |- d! [0 z$ v  K; Y  a9 E# U% v
static struct gpio_led da850_evm_tl_leds[] = {) M% d, P  {$ _+ I3 `
        {1 f* L; W+ w1 w
                .active_low = 0,5 X* X/ k7 o9 C* S, D2 M
                .gpio = DA850_USER_LED0,
6 {- z9 c* R0 r! r1 R! h9 \6 R                .name = "user_led0",# W% |( b6 u* Z- Y5 G0 j
                .default_trigger = "default-on",  A% c# m* P0 [- o2 q4 L
        },
, K" _% b$ t$ K        {
0 x, Y& M( q7 _6 c# I, u6 s9 r                .active_low = 0,: D+ t& p* G; j. `3 P( q
                .gpio = DA850_USER_LED1,/ m4 u6 J+ D: \4 s! J3 g. r' m
                .name = "user_led1",
( _, g9 ^2 w0 _: [8 D' _                .default_trigger = "default-on",
) N8 _! \9 x0 y+ ^8 P" k8 Y9 U  _+ j        },
. Z  F# B" @5 q6 F9 N* K, M        {
" k7 l* d# c% C$ Y7 s                .active_low = 0,) |9 n3 R8 |( h9 u% Q: `1 u/ b9 K
                .gpio = DA850_USER_LED2,
% X) f8 y+ N& g& X, j* p                .name = "user_led2",7 T4 O: C4 t0 C. f
                .default_trigger = "default-on",3 T3 Y, ?" n) z
        },( \! Y: i  t3 ~* w
        {: W" e* u4 g# N9 ^  p
                .active_low = 0,
" I5 Y/ [$ w1 |. Y3 n1 _                .gpio = DA850_USER_LED3,- y! |6 g4 u7 T% Z
                .name = "user_led3",
+ K4 J6 x2 y! e' w  B% f0 I  ^# O. a2 @                .default_trigger = "default-on",
" t, r2 U: r' ~4 L( |+ e" b+ v        },
5 q: y; x$ |9 w/ }};# F! A+ @, \  q& J5 \% T3 `) N" y
- h! G0 m! W' e2 V% j# F
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {. M) e$ x2 d% m; a8 q
        .leds = da850_evm_tl_leds,
2 V8 H, K0 f/ e: [  [! u) L        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),+ H  P8 O' q0 v1 I9 E2 s; u
};3 k+ ?9 Y; b6 q* ^& N, J: T
  H9 }$ R& M0 ~) E) I3 e( a/ l
static void led_dev_release(struct device *dev)
. Q4 c4 ?4 o2 ?4 @4 P% w{
. w. q* j* j/ b- r+ m7 U};
6 B: U* _4 w% n/ ^3 C
: i. ^' V0 z( r6 Hstatic struct platform_device da850_evm_tl_leds_device = {3 ~( H+ L! ^# v; d7 y
        .name                = "leds-gpio",3 e" x0 t' M) j2 V. U: t7 t
        .id                = 1,
. c5 I9 z! W" B9 t# _        .dev = {
, u2 r4 W4 \& I: F" O- a% B                .platform_data = &da850_evm_tl_leds_pdata,6 t# V  X+ a3 Q% e/ d5 x
                .release = led_dev_release,  R. c4 p/ _) l2 `; ?
        }
8 l+ ?& V& e1 H; Z% a& q};6 W1 @0 H" d8 F3 m! P) q) @5 u

% _1 j% z9 g. R7 h" H- vstatic int __init led_platform_init(void)
+ F, U2 S7 r+ ^{
6 q* y/ |/ w! [        int ret;3 e$ k7 ~; l! Z1 Y9 c/ s
#if 0
& r5 M6 a. B5 v# B: z8 ], O        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
5 g6 [8 l1 z  |, R6 v5 \9 o        if (ret)
) W6 K( X1 Y) l) u, |( g                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
; n4 K+ Q. |% y  l+ ~8 k/ f& D4 W                                "%d\n", ret);
9 L6 ]6 Z: Q: Z6 s# v2 H#endif3 K/ w0 V7 B3 {( O4 a5 {
        ret = platform_device_register(&da850_evm_tl_leds_device);9 x4 f9 D7 ]% `8 e/ F& e1 e2 H
        if (ret)
' n! O0 N. ]  E+ f                pr_warning("Could not register som GPIO expander LEDS");+ i" ~# S/ c" C( q6 `1 j
        else$ u; q* v% G6 ?, p# d
                printk(KERN_INFO "LED register sucessful!\n");& M" \. i6 c. r' V  I) E& o
( T$ ?& u4 o% G0 s. e
        return ret;' q# K- X5 \7 F4 y# B5 U
}
% y; a# S, x. W' U5 q& F' T% y6 v+ n1 L4 ]4 l
static void __exit led_platform_exit(void)
, m& t) [& l7 i% c- V/ o2 V& x9 W{
5 o% s% g7 D% c1 t. n* X8 A        platform_device_unregister(&da850_evm_tl_leds_device);
# D7 H  Y. V# Q$ z$ C" ^9 h7 H0 R+ k+ o2 G- v4 [$ D' X) ^. ~
        printk(KERN_INFO "LED unregister!\n");, F- |9 r3 N/ R) C( Q! W
}
* r- L  k3 Q, k( [4 ^
5 u: m. g( o8 ~1 w# n4 G7 ^module_init(led_platform_init);
! ]( I2 e3 U2 Xmodule_exit(led_platform_exit);
1 e" X$ j+ A3 b/ a- }, h6 J7 M2 @3 E0 n
MODULE_DESCRIPTION("Led platform driver");
* B" y- H7 t# U& G  WMODULE_AUTHOR("Tronlong");
9 f0 k7 ]: H4 ?MODULE_LICENSE("GPL");! _& [6 i! L4 C, l# h
8 R4 b" H- `! D
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-2 16:55 , Processed in 0.038347 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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