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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
7 e; P3 y5 N. w7 K#include <linux/init.h>4 m9 W# N7 a! Y% N( ^1 a# ]
#include <linux/module.h>
5 ?1 W( C( P) A0 S; W2 |#include <linux/kernel.h>- S5 u. V* D, e" R/ \+ M
#include <linux/types.h>
* ]& l3 N$ F3 N+ S#include <linux/gpio.h>% Z4 {+ I" ?( R7 X9 M. L) a
#include <linux/leds.h>1 p, G0 D0 p; Z5 K  b% i  F
#include <linux/platform_device.h>
% g  j) s; Z3 P( p% W
' j+ v1 v9 \0 r+ U* d: B) h6 n- [#include <asm/mach-types.h>
3 P0 [# {% U0 F9 U( f% L0 T#include <asm/mach/arch.h>, [1 `) M8 }/ r4 U2 d/ |
#include <mach/da8xx.h>
7 E& L' O& L4 {* v8 q#include <mach/mux.h>5 e! O8 D9 r( R3 e$ N; @: Q

9 r& a$ }7 P2 T3 |' d* I1 |#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
, n) n1 r5 d3 i#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
+ p! K2 B, F$ x3 O" ~#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
5 Q  N6 _. T6 [1 W- y0 a8 t#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)& w/ \" {$ l) |# v; R
# \7 M! V( h  m
/* assign the tl som board LED-GPIOs*/
' d' l6 r# T/ q1 X9 tstatic const short da850_evm_tl_user_led_pins[] = {
+ V5 |2 W' l! r" {) Z) H        /* These pins are definition at <mach/mux.h> file */4 A8 W& N9 o3 X
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
% H& ~/ ~3 S& a! S. q# ^& ^- q        -1+ L4 C3 K. o# w! j
};
! W! m1 t+ U* U' T$ @. Z6 N6 j$ a0 W
static struct gpio_led da850_evm_tl_leds[] = {
5 A, D# c, ?2 ^# u1 L2 `. |# O        {
' O0 R+ `# y2 Z( Z: `                .active_low = 0,
3 X/ }; i8 u+ s% u                .gpio = DA850_USER_LED0,
. z/ k$ G: q$ ?7 t% X/ |( a                .name = "user_led0",
- Q( m9 Z& @3 |; j                .default_trigger = "default-on",
) g* B8 Z( w# g4 \        },
5 ^0 D& v+ T' h; C* b6 W! u        {
1 y5 Q9 s/ ^6 w) i' g! \                .active_low = 0,! x: m, P+ X4 @5 n1 v( N: \- _# V
                .gpio = DA850_USER_LED1,3 m& T1 j1 Z- n3 d) q4 c4 q7 H8 V
                .name = "user_led1",+ s3 E( w% A/ m. G5 G0 ]1 w. p
                .default_trigger = "default-on",
4 w- p. Y' i: h. Z        },: w: R) U2 b6 \
        {
+ r$ U/ E% x6 p; U                .active_low = 0,: D; |# V* u9 `  Q# }* s5 M( e0 i
                .gpio = DA850_USER_LED2,, J1 N; A" @( O% ~; Y) {/ S
                .name = "user_led2",0 R# @; f1 Y0 c, B9 X0 q& P
                .default_trigger = "default-on",
7 M7 Z6 y7 n5 A2 d0 d        },& e& ?4 G8 n; ~$ Y
        {
3 i9 ~0 n$ D; S/ U- }$ W                .active_low = 0,5 ^5 [* y& x; j& d3 I5 f( `2 Z
                .gpio = DA850_USER_LED3,
& O) A  T/ z: L% p. M                .name = "user_led3"," u! D4 P1 {% {/ n! G% n& Z
                .default_trigger = "default-on",
9 m7 e) W. x. p        },
/ M4 X1 m1 P" _2 {/ A};
/ ~1 `% m+ h2 b6 |( h1 W/ h8 m4 U% s  @# C) ~
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {% E4 F+ Z7 ]- y8 n* R
        .leds = da850_evm_tl_leds,7 c/ S1 o8 c# k' D, o5 t- U
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
9 H( D7 `+ M, U6 K) a% D" U};/ X2 w' t& N" E4 ^4 s
" Q5 c' m% d+ y
static void led_dev_release(struct device *dev)
! L9 P" N  b+ ?2 c( e{
1 Z2 @' D4 w# w1 G0 K};! ~) S& f0 g' n6 |, Q& M3 S
2 h3 b& d% j5 F0 e4 C
static struct platform_device da850_evm_tl_leds_device = {5 }' ?7 M/ c: E4 N, @
        .name                = "leds-gpio",
2 P0 O+ ^' Y" k3 n        .id                = 1,) y; W0 d8 x6 Y7 A5 k/ L
        .dev = {2 X9 f0 S' @  K# ^( ~5 Y
                .platform_data = &da850_evm_tl_leds_pdata,' k9 W$ w( [4 A" l
                .release = led_dev_release,
) }3 u8 s1 \( l4 o* \  W        }
1 d6 D. i  y$ n; W/ \- a1 x4 A0 z* w};( I, ~5 _0 F9 M) P3 k8 o
" E8 S# r! X3 |, b
static int __init led_platform_init(void)
9 Q: c% e4 l& W2 T# V& R{
7 i6 _, V& y0 O$ h        int ret;
( }, @. v6 C9 I#if 0
  ]$ R: U% s" ^) u7 @2 Z        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);* |, d- |+ V/ h. _/ k
        if (ret)+ ?. R; L: ]+ |0 Z
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"# p, Q4 y! d8 T) P
                                "%d\n", ret);! P  {, C7 B9 c$ _
#endif
, N9 a" k3 W/ t% a7 S3 B& F        ret = platform_device_register(&da850_evm_tl_leds_device);# x3 ?+ E9 S( C7 g
        if (ret)* [% A# C- r$ G# z! ~
                pr_warning("Could not register som GPIO expander LEDS");
" {! G' k0 [% F        else5 b8 C3 G6 O$ _) l
                printk(KERN_INFO "LED register sucessful!\n");/ v1 P- `" H6 Z  |: D6 G1 I

% w! v4 q. x3 s# u! N$ q' h& P( `        return ret;7 N3 C4 p3 a4 r$ K+ t) E3 Y1 [
}2 r0 b5 ~5 G" o0 n

, z. O$ ?- D! v/ R/ y/ K) ]" pstatic void __exit led_platform_exit(void)3 A, _* @9 L& a3 \/ \
{. [8 h- O% {) ^# w9 O4 J' b# ]. Q& u
        platform_device_unregister(&da850_evm_tl_leds_device);8 ~- x1 G! V. f. u( n& i
8 ?( {) j2 j& `6 W( A; O
        printk(KERN_INFO "LED unregister!\n");+ J3 J& z7 I% i: A& D
}$ U+ V0 a$ R  |
( A& J8 v* V- ]- J. L
module_init(led_platform_init);3 V( m' X% Z# ~! O- ]
module_exit(led_platform_exit);
- d. V* r: o* ~9 k& P9 ?7 Q
; z" s) W$ ?- i6 pMODULE_DESCRIPTION("Led platform driver");
: z7 z; ?& s5 F! PMODULE_AUTHOR("Tronlong");
$ G8 B8 ^8 T4 }' nMODULE_LICENSE("GPL");, [! I: R$ N" t1 p" v& w# Q
, N! P. n, q4 ~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-8-14 21:22 , Processed in 0.038270 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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