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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。! G- {4 S: P7 K. l- L& g
#include <linux/init.h>4 Q# ^% |6 X; b4 P& B8 H
#include <linux/module.h>
$ M* A" U7 x: i. @8 W9 @  G9 L#include <linux/kernel.h>: d% y6 F5 A) v+ ]( X
#include <linux/types.h>
. Z8 r* v9 j4 ?% ~! j" Q) |1 o#include <linux/gpio.h>' ]+ m. g) ?% S& [& H& D* X
#include <linux/leds.h>
  C6 s3 T+ r. o& @$ p#include <linux/platform_device.h>
/ [6 L3 T: E: i7 j$ h5 R. a* m
! F0 B! J4 r6 h9 P3 U7 C#include <asm/mach-types.h>
& W; _  K* Y, _- _3 K. }#include <asm/mach/arch.h>
& o+ _( d3 Q8 \7 P% n- \2 n* @. i#include <mach/da8xx.h>
' n1 S1 }4 s& b6 f3 R+ E#include <mach/mux.h>
: ?4 S8 [/ V! P1 N& ?* n* A% p: e, f0 F
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
6 p) i0 p: z* W#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)& j8 J4 \- x/ `6 Z1 O) g; ?
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)/ q9 [  i2 t; e- C/ X! U/ j, h4 ~+ @- y
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
1 H+ O0 Y/ M. }% J3 \; L  ^& K* d. j
1 n4 \! d' i' J$ v/* assign the tl som board LED-GPIOs*/! a( k5 P5 @9 v2 K  h, d
static const short da850_evm_tl_user_led_pins[] = {
# i% T+ f9 i3 w" ]        /* These pins are definition at <mach/mux.h> file */& a3 k- t% [+ f8 ?& ]  j: L" g
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
& }8 d8 s) O  M# D+ q3 O        -1
5 g% R. h( \. q/ v' z! b  Q4 `3 m};
. k/ a4 v: m& l5 c) B6 o1 R# V, r" X
static struct gpio_led da850_evm_tl_leds[] = {
6 h6 S; }: E5 f1 x& k* v( Y3 E        {
  ^% ^. O! V) @# f                .active_low = 0,
5 q8 d0 U! ~: G% Z                .gpio = DA850_USER_LED0,3 l$ ~2 i9 _+ z
                .name = "user_led0",
, d. V6 g% n1 {( }                .default_trigger = "default-on",- `8 \/ a9 o3 w& S" P" @1 Y* z
        },+ F; h4 [( `  t+ f
        {8 W0 i" R% h5 D8 x9 g, Q$ K
                .active_low = 0,/ B/ r. Q9 V' {4 a( @. y6 e; P
                .gpio = DA850_USER_LED1,- z9 p8 j  u1 {0 D+ W
                .name = "user_led1",
6 t9 B4 B% }' L- q( r3 O                .default_trigger = "default-on",
9 B) g! i- _+ I- P# \2 [: R- |  k        },6 @1 h3 R9 D+ u+ V; ~6 c
        {
3 m. M) K2 |9 Z; Q! M# O+ l2 X                .active_low = 0,
6 I$ P' p+ s/ {% q0 [" M                .gpio = DA850_USER_LED2,
& D( R  J6 [* T- V; }* f/ w                .name = "user_led2",3 t6 r- H4 v  U% C1 H0 Y
                .default_trigger = "default-on",1 K, q+ l; W/ m; ]6 M! `" e6 U
        },' h# N3 `2 F; Q5 a+ e. v" L; b3 X  [
        {
; [# q) o- U4 Q2 g* J( x0 z0 [' g                .active_low = 0,
" M) x1 @! H4 t* m+ H7 U                .gpio = DA850_USER_LED3,
& J7 e* U' T5 M$ A( j5 l; V$ J8 V: @- w                .name = "user_led3",% P2 [, H5 ~" ~
                .default_trigger = "default-on",+ z0 h. Y6 r$ B* {1 w# S9 B
        },
2 j. E5 J2 ~5 y, T  H. i1 d0 {! ^# |9 c/ ~};
9 i* v0 ?* w5 s, h8 l# r0 C7 V. Y5 h
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {8 k: R0 \* F3 q
        .leds = da850_evm_tl_leds,% q. L$ \6 H/ I: d) O$ o
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
, s3 O. L5 ]. Y  G$ |2 b8 O& q};
! M5 _& @: Y- V  X1 ^# S1 |( F7 H
static void led_dev_release(struct device *dev)5 \* Y7 @/ }/ M9 K+ [+ b6 y" ~
{6 n$ |; X( T  f; c# r
};2 c, G. v: Y8 Y
: j. h0 x3 X, m: G; d/ b) \% }- Q
static struct platform_device da850_evm_tl_leds_device = {
$ c5 t) h1 y& c  ~5 S        .name                = "leds-gpio",. H- h* E4 V& W3 ]0 ^( C
        .id                = 1,
1 W! ~4 H9 d: g+ \4 ]        .dev = {
# T/ P9 h0 T+ u! t                .platform_data = &da850_evm_tl_leds_pdata,
4 @' }. ?' F6 Z$ Y9 ^                .release = led_dev_release,
4 e0 U# Z1 h0 p$ r        }8 f* Z2 _; V( |5 a: z
};* Q" z, x* y, ~: r

( A0 R( L# V: b! Astatic int __init led_platform_init(void)
0 O% n) K$ r( R/ n- x{
! q% D! v. \4 U' W7 ^2 z* |  x        int ret;  @% S0 X- A. E1 J; N, v0 {: o1 C
#if 01 V( }+ D) }+ N( \" m5 p2 f6 U
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);2 k# A2 B9 `9 q, X# I
        if (ret)
7 P' V2 C3 Z1 Q                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"" i( m2 M' ]9 e! A; R$ ?
                                "%d\n", ret);6 W, `7 @# u  e0 m
#endif
  p2 [8 W: L# m, H        ret = platform_device_register(&da850_evm_tl_leds_device);( G/ r+ ~2 K; }8 L9 r* M. |; n
        if (ret)
' o4 V  O$ o/ U' G% `, ~" l                pr_warning("Could not register som GPIO expander LEDS");( Q6 T( y7 e3 T; Q% [7 [9 n2 X3 P7 T4 s
        else
0 o0 G+ |  u$ W& f4 P! y/ J                printk(KERN_INFO "LED register sucessful!\n");: R$ Z- x- }6 Z# B6 p

) h& z+ O" F- r3 @6 f: \8 T        return ret;1 F8 n8 t  A* C
}
: a) r) z* Z8 V& s. |
1 v! p/ y; [% t: Sstatic void __exit led_platform_exit(void)
) H6 \2 s2 F- K- G; t% h$ K{
- E  {! ^0 h6 x  Q: e        platform_device_unregister(&da850_evm_tl_leds_device);
- B2 e4 i5 V7 ?/ {4 T( Y7 M) [+ s: a8 p5 h1 S
        printk(KERN_INFO "LED unregister!\n");
0 d7 n& w( y. U0 y2 H. J8 v}
3 y) f$ ^7 `  j! ?% F
, c/ I# s0 q. i, F) vmodule_init(led_platform_init);5 j9 w6 l5 o* }. V1 C8 m5 J
module_exit(led_platform_exit);5 j0 w0 G& @4 \/ }3 B( ]  l

0 J  [! ~# U) [* ?( D& ^" B# `, tMODULE_DESCRIPTION("Led platform driver");$ O( ?8 }' N% c0 U' h' o& _
MODULE_AUTHOR("Tronlong");
! I) E6 B! j1 u3 e. i$ fMODULE_LICENSE("GPL");
4 |& j* U4 ~* P0 s
4 L1 y5 M& e; |2 y) E( t/ V7 T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-23 04:39 , Processed in 0.039607 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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