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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。" z4 M1 O( `) g" }( l5 A6 C" y$ A4 N
#include <linux/init.h># E. q" P5 G- e* X) f
#include <linux/module.h>
$ c7 f7 t' U& t' {) y# K#include <linux/kernel.h>
8 |$ Y, n/ k) g2 Y5 R: c# h3 M#include <linux/types.h>; W. e: t4 j3 K# Q' E& W, a& }
#include <linux/gpio.h>
' k/ l1 q1 y+ p9 B% N8 C7 z#include <linux/leds.h>" L+ e! K- f! _& l1 C6 \4 y' }! x. N5 d
#include <linux/platform_device.h>! }6 R/ O7 k' O
# |+ R$ n, j3 p: {$ ~; u
#include <asm/mach-types.h>& c" z9 L, d4 s* R8 h
#include <asm/mach/arch.h>
5 v$ Z  X6 S$ J3 Q( d* k#include <mach/da8xx.h>( b. k+ U9 T6 s1 Z% E* v4 V/ E7 C
#include <mach/mux.h>+ _. I" t8 p0 j! \  [" r6 ~1 D
7 D' T8 _1 J5 ^: t: y, t2 E2 P& t
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)$ G9 k. S/ E8 m9 I% V
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
. u% ]/ o+ G5 n#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)& u' C  R4 n6 y; V# k, J" }& w7 D
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)0 e, h7 E# J( d! @9 l  G

" g  Q7 U2 Y8 |6 x: w/* assign the tl som board LED-GPIOs*/' e5 B. H" x1 N" J
static const short da850_evm_tl_user_led_pins[] = {0 N" _# H, K; k% s0 B' c
        /* These pins are definition at <mach/mux.h> file */# B, l% L" ~: k( L3 T
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
, q4 J2 X: X. I* T( c- w% D; K0 ?        -1; g* Z: q& Z! _( a+ d$ k$ O
};+ f6 d. O* t( U: u  J' x9 K
, r. M9 V* ~* M: D1 S# v" ~/ j  ?% ~
static struct gpio_led da850_evm_tl_leds[] = {
6 w4 n4 t5 G+ o8 t) R& b        {; m1 }8 [2 I) Z, ^$ V
                .active_low = 0,6 {! g8 @3 T, b$ I. J
                .gpio = DA850_USER_LED0,8 s" u4 }( C. D7 y1 ]
                .name = "user_led0",
/ P/ \/ I- d9 B  V" k  P, f+ |                .default_trigger = "default-on",) ?( u# h8 X& D  w0 l
        },$ M: L; J+ T, f6 n: J
        {
4 d$ D. b, k5 P                .active_low = 0,: Y% d% {, o  z# @+ C" `
                .gpio = DA850_USER_LED1,+ v* d# [/ t2 @9 O% m+ K1 z( l
                .name = "user_led1",
3 ^4 s$ e  e. X4 a) ?8 A                .default_trigger = "default-on",! s1 L/ T$ h5 R( R
        },% h: M, S7 v6 x* F# S- u$ k
        {
1 p$ c8 G% n: p! w                .active_low = 0,
% K( Y/ Z9 `" y5 Q' r                .gpio = DA850_USER_LED2,; F- Z9 C& z" Y2 p7 a/ I
                .name = "user_led2",: n. T# C$ L; @; X& w( M
                .default_trigger = "default-on",' W! \% H5 K! s! y' ^# }+ `
        },
0 z% V1 ]! W2 [5 T0 r3 c- }        {
/ W! ]6 h0 {' N/ l8 A1 c5 L+ \) q                .active_low = 0,
6 H0 t: X4 n) ~4 {4 R                .gpio = DA850_USER_LED3,& L& a; Q/ Y: Z; S+ B9 B( [
                .name = "user_led3",
" B9 _7 k9 ], e$ R" v1 F                .default_trigger = "default-on",# G& Y" p. w& \8 p! i7 q
        },2 b* d  [# ?9 G; }% @( {% O  ~
};
6 x/ X0 A6 I$ H3 T8 w0 L3 z* A. Y- p2 d$ e- @
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
- F. {5 t0 _6 ~) v$ K. w* R        .leds = da850_evm_tl_leds,
, F2 z1 R2 z4 I. w: m7 M$ K: T        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),- o: C! V$ Q. b5 n
};5 V" S- ?6 n3 _
3 O3 C' P, b9 X( J9 I8 @' X, t
static void led_dev_release(struct device *dev)1 b3 \+ v9 d) Y/ Y0 m7 X3 K& G- T
{) t1 ^. v! H2 P, a8 [0 k2 U
};
( K' P$ L+ ?/ z0 A- v2 L$ G7 M
$ C4 ]* u1 e3 y& \static struct platform_device da850_evm_tl_leds_device = {
6 Z0 F3 B3 f# R        .name                = "leds-gpio",7 d, @2 F) m! f8 O, {8 k) X& ^
        .id                = 1,
+ b1 c7 W% k) }        .dev = {0 G/ k0 }8 U4 R
                .platform_data = &da850_evm_tl_leds_pdata,! N  E6 r2 q! q- U" n8 A# M9 v  z
                .release = led_dev_release,( H" ?& c' A8 N% `; H* A
        }4 K) _' b3 P' i  a
};$ L7 l+ P! e) v* C
" V, }0 K3 m, p/ r" d( ]
static int __init led_platform_init(void)) U: j( o7 ?! @: d; R
{- H- G4 W2 e+ X5 Y7 N8 u
        int ret;& A5 a6 l7 [) D  i; J) I3 z
#if 0
( T  |$ C1 G- m0 L  v& F' \        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);; x* g8 t. d: E, G5 y. E
        if (ret)1 E) Z# w9 l% c+ s' C
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"  h' {% P, B2 L, |* F9 q
                                "%d\n", ret);$ A& s- M# P0 j; o9 Y6 g5 M# ^; r' Q
#endif8 P' A( l5 D! v0 C) D2 ]0 p
        ret = platform_device_register(&da850_evm_tl_leds_device);$ N! Z  F. v. @1 i
        if (ret): }7 [+ T6 c+ g: n
                pr_warning("Could not register som GPIO expander LEDS");
! P/ l, v3 s5 P4 z6 ]/ M9 a        else
% R+ k, G0 o' R! _3 B                printk(KERN_INFO "LED register sucessful!\n");
& Q3 C% J0 j+ w, P* O' E
# M. l5 B: Q; Q/ p. }0 r2 y        return ret;- ^6 d! j5 D8 L, [
}
" x" G" ]6 I1 n8 ^" i) K: `
; R- j0 i# `5 S! Qstatic void __exit led_platform_exit(void)
+ _) D) X* Q+ A' c* g3 v" ~$ ~{* ~. i. J/ B8 T+ k" C2 g
        platform_device_unregister(&da850_evm_tl_leds_device);
" g% G+ w4 u" M
7 o- I2 @" C$ s        printk(KERN_INFO "LED unregister!\n");
2 ]6 O$ O+ X, L- ~}/ d1 v' `1 N* k: H% e! f
% C# W9 t1 q3 R4 L; L
module_init(led_platform_init);1 E6 C" O8 p$ h/ c9 Z
module_exit(led_platform_exit);# B, \6 A( t& `' `

. I, P, B" I1 F) a8 g5 WMODULE_DESCRIPTION("Led platform driver");3 k% r; H# E- z5 T: I, `7 M
MODULE_AUTHOR("Tronlong");, J7 n( A$ }. j! M
MODULE_LICENSE("GPL");
& b; u$ M; l' l- |& c$ I9 R# H8 o7 r% G8 _0 r. [2 a
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-1 00:56 , Processed in 0.040142 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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