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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。5 ]+ B, S* U: H& k6 ?
#include <linux/init.h>: U1 C3 L+ c# f
#include <linux/module.h>9 p5 Y; L$ w# x" U" s
#include <linux/kernel.h>
& Z! [0 n% k/ Y, A& b0 d0 A( F#include <linux/types.h>
5 @, {1 w" Q6 l; G# A5 f#include <linux/gpio.h>& K1 J8 n2 H  U$ A9 i# ~+ k
#include <linux/leds.h>! Y  a/ w' m" v: y, H
#include <linux/platform_device.h>: {% n3 ?1 [' l

9 _) u2 a: T' C. s#include <asm/mach-types.h>
: `$ E- |3 n& ^) G#include <asm/mach/arch.h>3 r! \' d: I9 x! N  r( @
#include <mach/da8xx.h>: c0 ?" ^: \9 g5 P" C. [
#include <mach/mux.h>. i1 V. v' _* ?

& d3 t$ I8 l; |. y0 B#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)6 r0 ^* |6 T9 U& Y5 J3 r
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)( T3 e  i7 y: l1 K' a1 a2 J" Q
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)+ M5 ?. Q* c8 \1 W# {
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
  X+ N7 u: {- ]/ v* ]4 O; I4 K# H8 K/ C4 b2 B
/* assign the tl som board LED-GPIOs*/
) y$ q! W* ^  J- n: t& }static const short da850_evm_tl_user_led_pins[] = {  k& {6 ^8 g, E6 u$ X) T
        /* These pins are definition at <mach/mux.h> file */
" l0 G  I) ~# V0 t! T        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,, h) D' W  N# m0 B( T
        -1
1 l5 q* [1 f: h9 _, H};
# b2 y% O" p% o# A8 c5 ~; v/ h+ U: j+ f3 v& L9 ]% g0 H+ A
static struct gpio_led da850_evm_tl_leds[] = {
3 u1 p! l& P. @* D( \4 W2 ~        {
" k% R, {6 f. ^0 R/ d8 g. a                .active_low = 0,; T- B9 j3 }8 l1 ?- x0 x
                .gpio = DA850_USER_LED0,
# ]! I/ J9 h8 H, X4 x, T                .name = "user_led0",! ?0 _2 i7 Q' @: V) Y2 h( t
                .default_trigger = "default-on",+ c  d1 E1 s# f1 m
        },
# S2 U8 \1 |" h- W* t; n+ o3 T7 f; ?        {
; g! z* h, F+ J' l; F                .active_low = 0,
. w% P) H# ^, ^# }                .gpio = DA850_USER_LED1,2 U; X1 Q  Z: y, a* ]: q
                .name = "user_led1",
/ t! X+ N$ `8 f1 n                .default_trigger = "default-on",, @1 E5 h( ]: ~5 J: w2 H6 {
        },  E0 m  `* ^7 e4 M# S2 x, ~# n
        {2 E# j# l/ j: K, o4 }; v! A' R
                .active_low = 0,0 t$ p0 j3 X: p
                .gpio = DA850_USER_LED2,
/ i) B7 P! v/ N                .name = "user_led2",
* n! u; e8 L+ M" h* ^7 M                .default_trigger = "default-on",2 {$ b9 X8 \$ |* W3 w" u
        },$ [* y! Z; ^8 v) r/ b; [
        {
3 B: X6 W3 z3 E7 e2 D9 E. M' E                .active_low = 0,
: x! @# F* J/ m* U8 x+ k: r                .gpio = DA850_USER_LED3,  k, X# v, ~: {1 W2 _" ?
                .name = "user_led3",7 z/ S0 `3 Y. J% @" U; O  p
                .default_trigger = "default-on",
- ~( D  g8 Z  C8 e  I8 ?        },
- R) S2 |# r; O' R% |3 D7 \: ~};
  p7 c" j2 t$ m8 h/ V6 ^, ~! x( O4 n. x8 G
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {2 B8 J4 E5 U3 l) E! v
        .leds = da850_evm_tl_leds,
3 I- q) }! h: g  q. z5 P        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
; ]* X# P# b& L8 v0 ?+ L7 Z};
8 Y, ]* j' e3 x7 w+ L0 a4 x' `% h9 a# p, [- W1 |! |
static void led_dev_release(struct device *dev)* y/ }5 w0 r; ]! Q# o1 W
{4 N% V3 D3 F( W; |2 S8 x0 P0 o7 g
};, S" B+ A' J6 C( \" c

6 ~; _  x7 _; L- X1 s9 |static struct platform_device da850_evm_tl_leds_device = {
- ?9 N' C8 T) y        .name                = "leds-gpio",$ ]" |+ \' @9 U3 @2 C6 n1 w' K
        .id                = 1,3 \& o( \, p7 a% f/ ~9 k3 x
        .dev = {5 Q- q! s' v8 Y
                .platform_data = &da850_evm_tl_leds_pdata,$ A9 R' ]+ ^+ d7 ^" ?
                .release = led_dev_release,
* H& L4 A$ e5 m1 ~2 _        }
2 I* M; R) v. U  G* ]* a* u5 l};
( V+ b3 x/ V  P: x. R' D7 j) L, o' ?" Z8 u5 R/ a
static int __init led_platform_init(void)! U* v0 N+ y: ~8 ?+ S
{' n, r3 f% r# w1 d) T
        int ret;
5 y$ U; A6 }3 L& B8 V#if 0
6 u0 _4 r+ U2 }5 e. Q. ^6 }        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);* V& C* |5 ?: I' h& A. G- x- F
        if (ret); h% ?5 y2 q$ i! I: ?
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"/ H$ c# W2 M$ m4 ~5 q
                                "%d\n", ret);
7 p8 K' M% `" `- q4 N/ t( U#endif
2 n6 l7 @7 D+ `4 [        ret = platform_device_register(&da850_evm_tl_leds_device);( H8 N- j3 T4 N) V) v. I  G
        if (ret)
, \" l, h* u; ]5 |8 V                pr_warning("Could not register som GPIO expander LEDS");# E  s3 \% j" R  s* k# @7 v
        else
: b/ f% H  C8 F3 E% r                printk(KERN_INFO "LED register sucessful!\n");
5 u+ p- Z( Y& }  d6 ]+ `; v- ~# U0 s1 A
        return ret;
, I  p& y5 Y" J% B( X6 }}% W" r6 E- O9 }4 k

- `& w/ m% X; H; P6 k9 lstatic void __exit led_platform_exit(void)! [  A/ F" A3 `  n: F
{
* O: ~4 o% C6 z5 ?2 W: x. N9 T# C, q        platform_device_unregister(&da850_evm_tl_leds_device);
0 ~9 L' I" D: u. x
& ]2 O) y1 X. |$ o: F        printk(KERN_INFO "LED unregister!\n");
  z$ C4 ]# v7 Z9 V% g- l}
2 K" y3 \! {9 d7 y5 O  J1 E+ l/ i( k
module_init(led_platform_init);. s7 j6 U8 G6 U% Z
module_exit(led_platform_exit);
* l% g$ O2 Z1 m2 x# R
' V6 a: E- b! q& wMODULE_DESCRIPTION("Led platform driver");
3 t& d( v3 P+ K, V5 IMODULE_AUTHOR("Tronlong");& O- r6 j( I# w4 Y+ ~) Z
MODULE_LICENSE("GPL");; K2 b8 x+ x/ w' O

! w. p2 @: B4 u0 M
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-29 13:55 , Processed in 0.037641 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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