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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
6 _2 w/ E: @. v* }, d8 _* y0 O#include <linux/init.h>$ D* ~1 K- V0 h4 s  p
#include <linux/module.h>% J; s8 s6 ~& s; j7 T" I/ R
#include <linux/kernel.h>- y0 C* F3 A1 M. l7 O. y
#include <linux/types.h>
: r) `  O3 {" l#include <linux/gpio.h>1 Z' U( z( o0 B# Q1 X5 Z
#include <linux/leds.h>
- o- g( \3 [, ^  Z3 ^$ p#include <linux/platform_device.h>
1 p7 [- \% p# T% L
/ Q" M( L$ G+ E1 D4 Z8 c- V#include <asm/mach-types.h>( N9 W8 G- A# V2 R2 M- W( r0 z+ _
#include <asm/mach/arch.h># f0 D7 M: W/ z0 ^, ?4 r5 j& O
#include <mach/da8xx.h>
! {9 E' w0 }& P9 `9 u5 R' k5 J+ P#include <mach/mux.h>5 [2 s+ S/ Y& k" N7 a
  l8 ^& b  C- v2 _% u! J9 z' v0 s
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0). G. K4 C8 c, ?. ~' k: X
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
& A0 _1 q' w3 x8 z0 I#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
; q) F6 r* p0 d" [# V% K#define DA850_USER_LED3        GPIO_TO_PIN(0, 2): H8 [5 S! Q- t; j+ C
4 o1 I# L9 O. @& q5 J  s) ?
/* assign the tl som board LED-GPIOs*/
# s8 x$ P! |+ p+ ]/ J& x/ R, D/ S0 ^static const short da850_evm_tl_user_led_pins[] = {1 R% R$ u7 E" X. j. |6 H1 S
        /* These pins are definition at <mach/mux.h> file */
! r: u6 w1 o0 j  Q5 d        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,) z  m1 M: `3 W( }. Q; e
        -1, @, P/ k( Q- m4 k! d& n
};
* a) ^7 b$ i' j4 l5 {( L
; n* Q  u: E0 u( `+ K2 O% F# Xstatic struct gpio_led da850_evm_tl_leds[] = {
, D3 v  U1 k' V$ `! ], A, D        {
7 l: C4 o1 f3 F6 Q" O/ Q* N                .active_low = 0,
2 p" U! H8 J, q  s' d4 Y6 c                .gpio = DA850_USER_LED0,
# U: F' t  r9 Q                .name = "user_led0",6 k" U8 ?& [( H: a2 H
                .default_trigger = "default-on",6 y/ K4 g4 E0 \& b
        },
  Y: \" H/ n+ N7 S        {
4 v" h/ K; S" y4 |3 `7 g2 K* |( K6 f                .active_low = 0,
8 n1 B5 D* h5 C& D$ f/ i                .gpio = DA850_USER_LED1,4 E; n& T  a& u8 w) O8 _$ s
                .name = "user_led1",
5 F' \* w/ B8 U  m# @1 Q0 g                .default_trigger = "default-on",
3 M7 D$ h- p  i8 C  }        },/ g, |1 y) C% p
        {( X$ [! Q3 i( i- f/ ~
                .active_low = 0,* m! e( c; O# k4 I' z# D- @1 D8 Z
                .gpio = DA850_USER_LED2,
' n: g9 R6 _0 R  n4 U" g% Z2 f                .name = "user_led2",1 O1 G% t$ u( M4 Q
                .default_trigger = "default-on",1 P% u  W0 U; {3 C: H
        },! i" `# H" O* ~: ?* j
        {% }- s% v% n6 a. ~9 l
                .active_low = 0,
& z1 r8 s7 \8 }                .gpio = DA850_USER_LED3,
2 q$ d# Q" k1 O% s* J                .name = "user_led3",
  F5 R5 e- d( I0 J                .default_trigger = "default-on",
: i8 z  c6 @8 ^$ o6 P        },0 \( Y: c! K7 G+ t& N! d
};
$ O1 S' t: z: _. N; N
3 C) H+ H) k6 G- q/ Estatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {! q) ~2 V$ T9 S, K
        .leds = da850_evm_tl_leds,- Q$ [2 Z( }/ q& S5 w
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),2 y( R' L5 h5 ~' e6 r
};
/ |% Q- J4 q0 w/ L7 g1 U$ _: }# F8 L$ i/ T
static void led_dev_release(struct device *dev)8 ^2 w" q9 L& g( U
{
3 K; o% A+ ~* Q; P* g% z& F; t' y$ @};
7 [. S+ Y( B8 O+ D4 X- ]4 Y8 T0 V8 C. \, g) `
static struct platform_device da850_evm_tl_leds_device = {
9 @1 l' C) [, Z1 r4 v5 z6 w) _        .name                = "leds-gpio",9 w9 e3 a0 F$ Q
        .id                = 1,
4 {9 q6 ]; N* F6 Z$ ?' J        .dev = {: N5 W% I% x9 r" d* T7 t2 K: G
                .platform_data = &da850_evm_tl_leds_pdata,
! A; _' d0 C; G3 g# q! H                .release = led_dev_release,
9 i% l$ H# E8 Z% Z. t        }' x+ h" |3 `5 y0 c- \
};
: K' Q. o. T4 f% A9 r7 L5 X. G0 D6 Y
static int __init led_platform_init(void)
& Q. y7 ?% c, @" X3 K3 E* T/ X8 x{
6 d/ `* a: Q% B+ E: {( N  |        int ret;
5 J5 a& }  I) p( j+ o# `% ~#if 0$ ^. E& L  f: X8 O
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
4 J; l0 A& q1 T- w7 |2 C        if (ret)1 ~- n( H6 Q4 O; i* D9 u
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"6 @4 H  t8 t7 H  i( m% y
                                "%d\n", ret);5 i8 l$ {6 n  u! Y  K# K
#endif
6 m& n$ N. `& O7 l( P5 T        ret = platform_device_register(&da850_evm_tl_leds_device);
# H* ]* b; m  b% S/ k        if (ret)
, J. q% j" K& g. O% ]2 [                pr_warning("Could not register som GPIO expander LEDS");
" f2 ~5 l" d) Z& B8 i        else. }3 Z: d+ a0 t) L5 _/ `
                printk(KERN_INFO "LED register sucessful!\n");
2 `  g  m  F8 q, l7 c$ C/ j. G8 F
        return ret;, q& t/ F- I1 e2 [/ Y
}6 p9 i5 {+ Z6 N# j+ U

0 q+ g7 ~3 M! a0 F% Xstatic void __exit led_platform_exit(void)$ U2 h, s' o) U1 v) g2 k1 g
{3 J2 r# G, X: F' h, S
        platform_device_unregister(&da850_evm_tl_leds_device);$ s' H+ u7 {) r  ]9 Q9 L3 N) j( Z! ]4 R
' u" \: w3 q) y* Q/ v( k4 L: Q" O+ i
        printk(KERN_INFO "LED unregister!\n");
; `- b6 B0 o% }( T; `5 p7 t. `}% T$ K, w# N5 }& m; y, X" k

3 C2 H# q4 r! D& V) Ymodule_init(led_platform_init);
) ^0 Y0 P  M( @/ h$ Y% K4 p# W" xmodule_exit(led_platform_exit);  t- i) a% A4 V2 @; Z% R) b( c
. I$ ]: D7 o9 _2 T7 h2 t4 C$ o
MODULE_DESCRIPTION("Led platform driver");
/ c( R# v; A3 L  l7 jMODULE_AUTHOR("Tronlong");7 k" \4 k' \8 l% U
MODULE_LICENSE("GPL");: r* m- y' }* _5 G
% z# N+ Y$ g% q, E5 L8 ~! Z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-2 13:01 , Processed in 0.037464 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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