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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
5 z7 d( A; {  D1 b2 y#include <linux/init.h>
9 q/ n# _) K. Y- R#include <linux/module.h>
: B3 u2 v1 l: W0 }/ H#include <linux/kernel.h>8 Z/ `- u7 D& x9 N+ J
#include <linux/types.h>
2 T" L' L- E  l9 i1 o$ E; X  ]8 m9 c#include <linux/gpio.h>
: s+ }6 k% M0 a: @. `4 k#include <linux/leds.h>8 e: G7 I8 X8 Q! w
#include <linux/platform_device.h>7 L! x, I* ~( s. O% K

, T! @8 w! Q  j& J#include <asm/mach-types.h>
: B# T1 s3 r$ _, \6 F/ q, ~#include <asm/mach/arch.h>" b+ \* ]& R$ Y; ?; m
#include <mach/da8xx.h>% B* `& q. W% i4 n
#include <mach/mux.h>
) E( s# e7 g% t: v  P  J7 q9 E1 S, K6 ?, U' r3 C; }
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
2 t' n$ q2 m9 [( L#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
( G9 }8 m( f/ ]' p#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
, X- o9 U2 o7 M8 u, f1 J! C#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
3 o, A; u& ]% C& ~! u) y
- q  ?9 h7 G5 n7 Q2 W" {1 _/* assign the tl som board LED-GPIOs*/
8 O! v( T! x2 U6 v8 Istatic const short da850_evm_tl_user_led_pins[] = {
% u2 l# t; m' t) x4 v        /* These pins are definition at <mach/mux.h> file */8 g* r4 E/ ~  A2 v
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,0 ?3 I9 c, s) E0 n) x
        -1) n4 ]  i! r2 l7 m; x; d* h
};
/ M, v% H9 k, C( R. y( u* w5 l" Q# N( r9 y6 [4 V
static struct gpio_led da850_evm_tl_leds[] = {
1 \8 k8 N% ~! G8 F' k# f        {
2 p( _4 M+ X/ g5 a+ w5 G0 `                .active_low = 0,) G7 |- o6 g/ C1 @0 Z' r7 K
                .gpio = DA850_USER_LED0," Q! i8 M2 ]. o% j
                .name = "user_led0",# U1 U2 d5 \, l- ?' j& C
                .default_trigger = "default-on",; M) i) U  S1 v6 e  Z
        },( q2 F  V7 d/ {  Y# p
        {
  K4 p$ _8 p5 p( `                .active_low = 0,
  E7 ^% r  h: C3 s& ?7 s: ]9 a                .gpio = DA850_USER_LED1,
  z/ N% a( d# Y, I                .name = "user_led1",5 r5 u* S( H( H$ t/ P. f% T$ V
                .default_trigger = "default-on",
1 |# U% t2 o9 A2 K3 o6 C        },
. Y2 j) x7 j; R+ P3 _        {
0 k$ [) C3 W3 p0 a( V                .active_low = 0,
6 T* k- E0 v2 v. h: c" K  V                .gpio = DA850_USER_LED2,6 ~' X5 p4 }- t  P8 l
                .name = "user_led2",
9 R; ^5 g" M. `9 Z; M% C, N2 k+ t& @                .default_trigger = "default-on",, Q! B0 T2 s' S; M" P0 D
        },0 E  Q" z/ k( s7 X) v" z- F0 O
        {. y0 f  p; S" `5 `
                .active_low = 0,
6 r( }2 X( a( {* ?5 T                .gpio = DA850_USER_LED3,* G* p: _8 g# \; _- D+ ?
                .name = "user_led3",
! H& M1 b" |( B                .default_trigger = "default-on",
( B% {- A3 p3 j        },
+ H7 Z- q0 l- L};
* q3 ~4 A3 u! _9 \" f  h1 `$ U0 }' k  e% G# `* |. i5 a7 Y! \
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {& f) o" U+ f) ]1 N% z4 P9 ~
        .leds = da850_evm_tl_leds,* ~. P  F0 H  z) N) A) U
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
$ }! E, [% @$ F3 o};
3 }, r6 w) B8 L# a
7 W5 ^: e: j" xstatic void led_dev_release(struct device *dev)
0 E$ K3 _; H7 g' b+ C  B2 a{  _7 G- i' g- d* ]* b$ c8 D! C' F! q
};
& a: o6 p/ _% B' ]$ N. }1 H2 K+ D. I) W  N
static struct platform_device da850_evm_tl_leds_device = {# A: a+ E6 ~6 k( @* F6 W
        .name                = "leds-gpio",
& z% t1 }, a# C4 P8 q        .id                = 1,
1 @3 ]% }  {1 N5 k* B  t        .dev = {1 u, ^' ^, f9 ~
                .platform_data = &da850_evm_tl_leds_pdata,+ q  s- y. S0 E
                .release = led_dev_release,
  j6 A5 J$ Q( D+ i) f$ P: I5 _        }
& r) ], f$ W' \  Y1 X1 @5 p};* y" A( g  \8 M0 B& q5 y
6 C9 x- K- b8 J6 }) y9 ~# v
static int __init led_platform_init(void)/ C' E  A" U; R) Z1 i
{0 v) R' |+ L/ r$ B1 l3 R% e. X
        int ret;  g( ?6 m% L/ N+ F6 Q+ F3 R
#if 07 W4 _% c' f, S% X# k2 ]) Q
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);9 B: v! A* e9 \3 l9 Y; R# Y6 d
        if (ret)$ V$ m( _4 X6 p8 ~9 d
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :") Y4 j* M* ?( q3 f8 \! g5 g
                                "%d\n", ret);1 _7 H1 z2 n1 c! \
#endif
3 Q1 i4 D' R5 W$ x% V# G        ret = platform_device_register(&da850_evm_tl_leds_device);! k, ]& A1 R, s6 L: k6 v
        if (ret)" i1 p4 ^: n. P$ t# B. t/ r3 l2 I# x
                pr_warning("Could not register som GPIO expander LEDS");
8 ~9 z! n) [3 D. O4 c        else* c, V- e, M' L. v& W3 b; z
                printk(KERN_INFO "LED register sucessful!\n");7 c, ]1 U* h  `, Y+ i6 g2 p1 s) R

2 j0 C/ ^8 E1 M" v8 X& t        return ret;
; {; }3 t" `/ }/ m/ `1 K( H}$ W; L6 l; |" F4 x; ?) B

* n0 T% |4 N. M3 J, i# Kstatic void __exit led_platform_exit(void)
. G0 e5 A+ ~% v( n- _% t{
- I2 b9 r3 I& ~$ Y4 E2 O" V        platform_device_unregister(&da850_evm_tl_leds_device);7 ?, P" P; T. a6 C! w! n

- i9 _, H: D- D' v6 J# ?/ F        printk(KERN_INFO "LED unregister!\n");& K7 p5 A# y. E8 x# i
}6 z  l. y. j6 h

4 m0 N3 t- ^7 d+ {8 ]module_init(led_platform_init);8 V/ |  v& |8 U& |1 c( `
module_exit(led_platform_exit);0 h7 A6 P8 r( m, U& a
( m/ \# H* p% y* T  o9 |
MODULE_DESCRIPTION("Led platform driver");
' l1 h! r  W- s2 \) x' nMODULE_AUTHOR("Tronlong");- S  T* ]. q( }2 ^& E/ p
MODULE_LICENSE("GPL");
% `, d& x  T, f  {+ a6 m, `6 Z
  f( T3 o8 ?& l' b8 `* q! a) x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-3 06:09 , Processed in 0.040871 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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