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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
! j/ s/ `1 }: s2 A0 W#include <linux/init.h>+ h. G& |0 e% F2 p# N$ o( i, S
#include <linux/module.h>: ~' _- i' k7 |2 e3 {" k
#include <linux/kernel.h>
( _" M4 O' c! t4 o: C#include <linux/types.h>
2 t/ ^* ]( `# F#include <linux/gpio.h>
$ \5 m. t& C; C, ]6 F+ P; v  k5 y#include <linux/leds.h>
4 v2 |8 N7 ~& J3 A5 q#include <linux/platform_device.h>
) x, d" H) B- ~8 s- C$ I3 m/ ^# v/ `" L+ ?+ @  c: |9 @( V
#include <asm/mach-types.h>5 {7 P  _$ Z$ [' z. F% Z
#include <asm/mach/arch.h>
( w) p' n8 l3 T+ |1 d& ]#include <mach/da8xx.h>. Q* Y1 k2 D4 W5 G
#include <mach/mux.h>
2 R- V( C% R  g8 |6 K. x. f  h8 S8 O7 r% q- ?0 j
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0). D2 t2 X! ]8 @/ Z# K; `! n
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)! D- J8 Z% C2 ~2 J1 m
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
% U6 Z% R/ t4 C0 Q  e* q#define DA850_USER_LED3        GPIO_TO_PIN(0, 2). D$ b! m) t; q- |) X

8 a$ D# H- Z( x6 L; ?* x/* assign the tl som board LED-GPIOs*/
+ J  n* }8 a) Kstatic const short da850_evm_tl_user_led_pins[] = {: L4 U( @8 x, `4 T& r4 L
        /* These pins are definition at <mach/mux.h> file */
$ m! w9 P0 g. A; I) v        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
  O, n: Y& Z& ?2 B! t' G8 L/ k        -1) o, {# Y# Q/ }7 C+ s
};
9 B6 m3 ~- o" g. N7 G# S/ t
5 v. v9 ?9 x, G8 Kstatic struct gpio_led da850_evm_tl_leds[] = {9 F5 b* U2 N- D6 b3 S
        {. A$ h6 U5 ^1 B3 Z. g6 U' b: p
                .active_low = 0,
& `* l& [9 x. b9 U/ @9 T                .gpio = DA850_USER_LED0,1 Z5 r. B1 j' D, ~2 t% q
                .name = "user_led0",5 h- M1 i/ O( L3 K0 l
                .default_trigger = "default-on",, c5 y! Z8 r% W2 @/ N* H
        },
3 M' B( ~. M1 f, \3 }        {
! |6 c( Z% [1 v                .active_low = 0,
3 e0 N4 i/ P9 G& a9 U- ?5 t                .gpio = DA850_USER_LED1,
! @3 N- B0 c3 \, k                .name = "user_led1",
; T0 ~* u, M: y/ B( ~- z0 ~                .default_trigger = "default-on",
/ M; Q) r# S6 b+ ^8 R        },
  R+ ^$ u5 p3 B$ l, ~        {
; ~8 O. E2 q# `( m8 G8 G1 D5 C                .active_low = 0,
1 a1 Y) J' q0 L/ `                .gpio = DA850_USER_LED2,
2 W/ V5 i' a: h                .name = "user_led2",) t0 g% x- d" ]6 u* l8 r3 w
                .default_trigger = "default-on",1 T4 g' m  e2 Z" w5 M
        },; S) M! W4 K# \( i4 v
        {
6 O' _) Q- m/ f& ?$ |% a( q4 k                .active_low = 0,  }; u4 Z6 y5 {- m
                .gpio = DA850_USER_LED3,4 L# S" h6 [9 x  F$ N; \4 P, U
                .name = "user_led3",9 g/ O% s7 o9 y9 L
                .default_trigger = "default-on",* c! Z4 W$ m: }) r1 Q' Y, p3 @
        },3 o' v) B; K: H% V, X
};+ @( V' z; r- E/ x4 T: I

: V5 K" M' i# \- K" F/ `static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
2 e+ c7 E7 Z( b( `        .leds = da850_evm_tl_leds,
# I- s% a; O; }! M& P        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),8 e) e3 P- \+ k
};
3 `% \$ N' b! G" r$ @8 B( w) Z
static void led_dev_release(struct device *dev)1 t# K0 H5 J7 x9 B
{
. {7 c9 x* \$ M* p. ~! L: n0 c};
' ]* Z/ V7 O2 A% R& d% x6 n8 A% w  ]% E. u
static struct platform_device da850_evm_tl_leds_device = {( F: Q$ R( A+ V
        .name                = "leds-gpio",
+ W1 |7 X; v" V0 T' D) E% c        .id                = 1,
: H0 I  l+ Z, d& U: Z        .dev = {' v6 v  S9 Q: n/ }* ^  @6 U5 f
                .platform_data = &da850_evm_tl_leds_pdata,
4 ?+ H/ P# Y; E" n9 h5 v                .release = led_dev_release,3 p8 T& D& {6 i7 b. q
        }- j+ o0 Q& t. G! N) d
};  b! c; R) `7 |4 M( @% R

. n2 c9 Q) S/ W0 y7 k- n4 ^static int __init led_platform_init(void)$ L7 X4 ]- f4 ~! M
{  ]& |; S' P0 I/ c% ^, n2 f
        int ret;' D! y2 W* \& J+ I7 Z' w
#if 0
3 o7 P. |7 S7 m        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);1 r' @- ~5 D, |  N0 [
        if (ret)" T* |3 G7 a2 Q" S) L
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"2 q; X2 \5 ?6 O" o# @& J) d
                                "%d\n", ret);
$ O2 H/ I/ J) ?$ O7 @#endif4 M( K$ d" k% s9 W
        ret = platform_device_register(&da850_evm_tl_leds_device);  n" o2 E+ x: |) Q
        if (ret)
* K# j/ n: z3 M7 n- J/ m                pr_warning("Could not register som GPIO expander LEDS");
  E! o7 [* F0 S        else3 a# o( l2 x" ?7 u& h9 W/ `$ c) z
                printk(KERN_INFO "LED register sucessful!\n");
$ M  L" d* E* O. L: @6 D1 g1 c* d
        return ret;
5 G. @. O2 z' L' O}. o+ [: b9 @8 y! G( b2 \* t

0 j9 l) Z& R+ ]static void __exit led_platform_exit(void)1 k  J# p7 j+ ]& M
{# r& v( T% v" }0 v" Y3 v
        platform_device_unregister(&da850_evm_tl_leds_device);
7 |+ Y5 n, Y2 z4 T, [! }, s; N0 D  T$ k' L( u# ^+ A3 g
        printk(KERN_INFO "LED unregister!\n");
: k& |$ Q- ?& n; t}
4 i$ A$ `: m( M7 l5 w4 M! a5 Y+ G8 R5 N" u
module_init(led_platform_init);" T. h6 a7 y2 @1 Z8 q8 E8 B
module_exit(led_platform_exit);" Q9 C" m3 k2 C0 ]

* f+ W0 |% B& y# b+ ^MODULE_DESCRIPTION("Led platform driver");, j7 v* m, L# h0 P" s
MODULE_AUTHOR("Tronlong");
; `- H1 j# l  C9 a! mMODULE_LICENSE("GPL");4 b0 W! c) e  U! Q

  _& d5 p8 G& r- l; V; o7 t& q" k
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-7 00:28 , Processed in 0.051172 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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