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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
" Q* L# ?  h; S- P3 K#include <linux/init.h>
' P& M/ x! k; i#include <linux/module.h>8 x1 ]: j4 N3 _  [
#include <linux/kernel.h>4 l. L( P, p- G
#include <linux/types.h>2 |- U- M. c. j/ q% d) H
#include <linux/gpio.h>  e3 y$ V: J9 d
#include <linux/leds.h>' v4 t2 i4 p; ^; q3 M8 v/ V
#include <linux/platform_device.h>
2 s8 d  b% B# y) O, t1 r! j
" R2 R  N& t2 ]! O2 C& l#include <asm/mach-types.h>
+ \7 x5 X4 X$ E: g( b2 m) M, {#include <asm/mach/arch.h>7 d+ A& |: V; e  f2 q  z* ?8 ~
#include <mach/da8xx.h>6 {7 g3 b* P, \# d
#include <mach/mux.h>- t  Z$ M+ ?8 c" m

5 r9 R2 t  Q0 a! [0 Z2 w3 Q2 T% t#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)) p: a' M4 X3 k5 ]) |$ W
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)& F/ y# G. y7 @+ A8 i/ |- V
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
3 U7 T: r1 I9 f" ~#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
: @" c( v' v) `6 _  i( _2 r
  M& j" L8 k* A8 w7 z/* assign the tl som board LED-GPIOs*/
; o; m) J; O/ Astatic const short da850_evm_tl_user_led_pins[] = {
5 w3 I' I; h. d) y6 }8 b. Z        /* These pins are definition at <mach/mux.h> file */3 ^8 Z1 \4 p/ Z
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,$ d6 {+ i: S/ |- C, r
        -18 w. Z5 [1 `+ A- p4 L
};$ y- u+ l, c2 X$ G# L

2 r# l0 b# C0 g0 n& i3 Ustatic struct gpio_led da850_evm_tl_leds[] = {
' h' w" k. c- V2 I6 C& c        {
2 D. P! w! V; t& a  ~                .active_low = 0,
: o- ^8 x( B8 a2 ~. O* V, k                .gpio = DA850_USER_LED0,
1 v/ i& @1 @+ I                .name = "user_led0",
1 W& n4 L. Z0 \                .default_trigger = "default-on",. R- ^, b- W6 s1 l  p- J# o6 [7 E
        },
# f9 p2 I# g* E& t# d7 \        {
3 c+ W) e6 p- S" f                .active_low = 0,. S: y4 R& Z5 L; d' w8 K
                .gpio = DA850_USER_LED1,
/ J9 d8 l! u' L  G3 z                .name = "user_led1",! N2 u% F! Y. \/ \5 p
                .default_trigger = "default-on",
1 P+ }/ m  X8 N# H        },( ]1 _7 L2 g# Z$ N+ e) ?
        {
3 F* Z: A/ l8 f  @                .active_low = 0,( h5 ~' n' J9 c
                .gpio = DA850_USER_LED2,
0 r) E* Z7 H1 J6 v9 C4 M9 D- o                .name = "user_led2",
+ j& v# ^* e% x                .default_trigger = "default-on",
% G7 B2 w5 ^3 ~' b        },
, e* G; v3 c: `+ v$ e        {
  z# X/ [! g, p  }0 i0 w4 v                .active_low = 0,) b+ ?$ R( \. g) T! z
                .gpio = DA850_USER_LED3,
2 ^. G% w$ ]9 V* b+ i                .name = "user_led3",
+ O# Q) J# z% u" c" _                .default_trigger = "default-on",0 c* J6 ^4 |8 v2 h4 S
        },
5 B% {, F- ^7 Y" t4 g};
  X5 `; r# q) e4 P0 L$ g4 C8 q+ ^6 W
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {1 Y$ Y' ^' m, r
        .leds = da850_evm_tl_leds,2 m% \  t# `& a; I
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
" o  }/ e; _* n# W8 Y  o5 E};$ z. Z7 F: [/ ^" T; F) {; C5 g
3 Q% t% t) a: Y
static void led_dev_release(struct device *dev)
, E; Q: Q- ?% |- I{
) _* k: U' I0 L( b2 y};7 l8 F5 x4 \, m- v. B; f
" z: b  L- V% _% c" E& _
static struct platform_device da850_evm_tl_leds_device = {
" A+ b$ K/ s; k8 T        .name                = "leds-gpio",  T6 f1 L# H- [0 [9 \; e% ~5 W' _
        .id                = 1,- @) d7 N; K: b4 v; T) p# F
        .dev = {. Q9 ?" x: f% F0 Y5 K4 p$ b
                .platform_data = &da850_evm_tl_leds_pdata,% |2 Z  `8 V6 }' \+ f
                .release = led_dev_release,2 X9 s! L* J! T9 A5 q7 x; i. y
        }
' d) D" m' \" b* k* ^};
0 u% o! }, i$ a* p( ]' Z9 Y) o" {
static int __init led_platform_init(void)
+ {# v5 I  E6 ]# C" c  K; g{
' A8 m4 K( o1 s        int ret;
) E" w6 `. I9 d* C$ M+ g# Z# j5 M#if 06 x/ k8 }' u5 e9 k' ^
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
& ^6 j/ t2 [7 @) I        if (ret)
0 w: @* ?, Q9 n: l8 R9 [3 d4 Z% X+ s                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"6 i, u+ U4 N( g' x  I
                                "%d\n", ret);
0 F2 t" F( a# M#endif
2 ^$ h8 }( w' L" u1 y        ret = platform_device_register(&da850_evm_tl_leds_device);
# J* R1 R$ ~& ^- k        if (ret)' Q! Q: N$ g0 ^5 M  Z& I; R6 o" i6 ]# m: |8 o
                pr_warning("Could not register som GPIO expander LEDS");
  w# Y0 t+ V, c. a2 H1 k7 s( V# g        else
& y, l! [9 @+ b; f. {                printk(KERN_INFO "LED register sucessful!\n");
, u, b- x6 m5 z7 \" p: [
9 T2 |9 f+ L) g4 l  q8 X# V1 ?0 m" y        return ret;& r4 I% U1 A$ s3 }' W
}
  u1 W' {( N/ R* m+ R1 P/ |! n  u9 ^0 H, G9 H$ J% t' @* q
static void __exit led_platform_exit(void)- [: p; m% f# e: Z0 b' z8 A4 E6 G4 X
{
) X- U/ g# n0 ]- h6 h1 P& o  W3 g* P        platform_device_unregister(&da850_evm_tl_leds_device);
2 x# M( _" X" y4 R% H1 o
! R1 E! q* F% C5 i, z- {        printk(KERN_INFO "LED unregister!\n");
" U4 u* i6 N7 W, P. D1 R: X}# ?: A; ~  J. E) I+ I; {

  K) D% L: D' X# B9 Pmodule_init(led_platform_init);
) E- F/ E6 |9 p; }module_exit(led_platform_exit);
2 v# i' q0 ?! A; y( @
3 Y& \' l& b2 g; V/ z9 {MODULE_DESCRIPTION("Led platform driver");
( q& x0 c8 y" y1 w( gMODULE_AUTHOR("Tronlong");5 h9 j1 A: _6 A- |/ C
MODULE_LICENSE("GPL");
9 C, @0 l9 y2 V( p4 ~0 ^4 s
- X' @3 m) f) w4 }# Q& w( E
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-25 23:41 , Processed in 0.040418 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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