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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。& I. j% Y$ [. D
#include <linux/init.h>
9 p2 |. \8 Y8 M6 M: ~% O#include <linux/module.h>/ Y1 ?7 e! z' }% `3 ?
#include <linux/kernel.h>5 Z9 D9 b# M0 g5 g# R
#include <linux/types.h>
% Y4 i; D; Q* u& L( q4 a4 X#include <linux/gpio.h>2 F# L# R. X$ C9 v
#include <linux/leds.h>
2 u5 v: b) d/ a/ Y#include <linux/platform_device.h>
3 J- U5 ?* s4 v
; s3 z# s$ c; ~1 R+ N2 G#include <asm/mach-types.h>
, _& H% x# u: P& z#include <asm/mach/arch.h>4 J# v; T' b& B9 Q/ u1 d
#include <mach/da8xx.h>5 L7 g* M! l5 u; ]5 |
#include <mach/mux.h># B5 @$ n' E/ V/ h. b4 p
% {4 m! x( Q- y; T( S- \
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0). f& [9 ]! v& S3 Y0 C2 q  a
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
+ G. j- I1 A. X% e* J) o8 O2 q! N#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
' O  i6 C" M7 M( m5 g#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
( [1 I# f' O/ _1 A# z( _4 Y; v$ W3 k; K' Y; U7 P+ l; v+ ?
/* assign the tl som board LED-GPIOs*/
) o' H9 _  J: _9 c: [+ @static const short da850_evm_tl_user_led_pins[] = {
$ F6 ?+ R- K8 v, u        /* These pins are definition at <mach/mux.h> file */, q2 S5 H: F% f" d
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
7 h+ I+ o9 N- f' t+ g/ o        -1" g' O- W3 g6 I
};4 B& w  f4 |2 Q4 K% v; o

" D- r5 k4 U* u; ^" r, nstatic struct gpio_led da850_evm_tl_leds[] = {. [+ H( x( J, [3 f, E+ P
        {* A/ Y" M, O& f0 s5 i; N; t! Y
                .active_low = 0,6 ]$ [2 r7 X1 D, ~
                .gpio = DA850_USER_LED0,
1 _5 G/ l$ q( P, d# U                .name = "user_led0",
5 w# J" B8 U+ [( U" h8 x                .default_trigger = "default-on",) ?5 S2 C2 n. N* S& @" y3 c
        },% t5 v6 _& m" `$ N
        {
- C2 D6 c  ?, L0 ]- r                .active_low = 0,
' e3 H3 O$ U0 B% [; ]) u# r                .gpio = DA850_USER_LED1,  s, [) o* W1 ]9 D, r% g
                .name = "user_led1",
7 E& l2 O8 L6 b3 W+ p, {5 C: K; O4 y% I                .default_trigger = "default-on",
6 r( d7 L2 h9 Z1 p! T        }," T% w, H1 e8 `' v; m: j7 {' }, g
        {
! C+ i4 k2 b( ~& W) X3 @+ u3 w5 r                .active_low = 0,
& d9 {$ @8 q+ j4 N8 P% s                .gpio = DA850_USER_LED2,
9 E; q, B& z3 G7 l  n, o5 M$ L                .name = "user_led2",/ A3 o# H9 z+ {' ~/ h
                .default_trigger = "default-on",
6 U! ?; m7 ^* v; b# O        },
% k; c! R! b' V* g+ p( ~7 c; ]$ R        {  L/ U" R2 M+ A5 K8 |8 k5 O8 Q
                .active_low = 0,
; ?+ q* }5 W, A2 s  f6 A                .gpio = DA850_USER_LED3,; |* m. K6 _& v: Z3 P
                .name = "user_led3",
6 ?# r3 m( z6 P: q+ h                .default_trigger = "default-on",7 `0 S- n- ?! e& r) M& f
        },9 @0 _/ \% d4 ~8 V9 ~1 b
};! @4 A. [; O5 W5 D
/ S: n! l, w  m" z* U
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
; \& s5 F) e8 p' c6 Q/ d+ @% E        .leds = da850_evm_tl_leds,
# b7 b) f& f: @- ?" @        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
: p) }, q9 O3 D* K+ w% h( V# B};
. ~5 P; Y0 q! I8 u& M
! A7 v. R6 _2 U, y6 t1 ~static void led_dev_release(struct device *dev)" j# v  m, G+ V6 l' ?
{! V9 H. J2 D! J3 }2 f1 k; f8 |
};
  F1 ~% C: o+ `, O1 W
& R; J2 X5 X3 N1 j) p2 Bstatic struct platform_device da850_evm_tl_leds_device = {
6 h9 ^4 o4 r! c        .name                = "leds-gpio",' j4 F. x9 n2 u  d. y
        .id                = 1,' z& C5 I" x+ t+ |2 c
        .dev = {
7 B* n9 e) f; b7 a                .platform_data = &da850_evm_tl_leds_pdata,
5 S; x7 E; U" ^                .release = led_dev_release,
" @6 r5 L7 z+ P8 A" j        }
' b7 ]; d( z. f2 k: Y3 D) ?};
4 e$ D. M2 d7 Y) x9 d' ~9 j$ z9 f6 Z  g& u1 i
static int __init led_platform_init(void)
9 r) h8 C* Y& B* E9 U: N# ], G7 d% i{
# ?- W0 K4 i: t        int ret;5 M8 j" e& X" B( [
#if 05 ?8 n6 S' o3 D4 T( g/ q
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
9 U0 [# b; ~: k3 `" d/ ?. R+ q        if (ret)
' q4 \- Q" f- s( {! C$ C                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"5 P) I1 s' b5 o. E4 |2 l2 r/ j
                                "%d\n", ret);3 l/ V: Q3 O1 T! h
#endif
! V- Q8 b: r0 o* ?1 B* h        ret = platform_device_register(&da850_evm_tl_leds_device);" {8 `1 c1 F- d) L/ `- M
        if (ret); m5 ^1 [4 Y1 u: h! |
                pr_warning("Could not register som GPIO expander LEDS");% v* k  Z5 S0 P+ A: c- s5 M
        else
( _7 g" e; N: f6 v2 e                printk(KERN_INFO "LED register sucessful!\n");
8 h( D( M4 l. L  N% e
9 ]2 {/ K( B2 A; c6 ]! I* @        return ret;
" a1 j$ h* X1 F. g}) v* l! e$ B. q

2 j' F. J% N$ _/ `( Pstatic void __exit led_platform_exit(void)7 I; k" n7 l' [% [0 |
{
0 h5 X9 ~( L7 L+ S/ S/ p        platform_device_unregister(&da850_evm_tl_leds_device);
' c+ z. F. S, w2 k
9 r) [9 I: b/ N7 K/ [# S( o' u' ?        printk(KERN_INFO "LED unregister!\n");) b; H  _. ^  u# n5 B; O# d
}7 s! L1 u; ]$ M4 W8 T
8 D7 T" x5 N8 |: ?* r
module_init(led_platform_init);0 b# T* p  t( I, K  O! h0 t$ b7 y
module_exit(led_platform_exit);/ J% i8 x4 t' _7 _4 C4 E
7 Q$ J1 c! \' T: |$ L- p: I9 ~
MODULE_DESCRIPTION("Led platform driver");
6 n) S" [0 d9 K) p- }9 bMODULE_AUTHOR("Tronlong");
- p6 q  \( [/ {& T$ |( LMODULE_LICENSE("GPL");
; f% f9 B+ C9 b6 }4 R3 T+ w. i4 h! p8 s9 X& o- y* V" g7 f3 k
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-28 22:48 , Processed in 0.040274 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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