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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
5 P# @% l3 o, y3 w4 @0 K" }& N#include <linux/init.h>5 K. F7 C, H+ p4 f5 K
#include <linux/module.h>! d, o* P! ?9 ]5 s1 M
#include <linux/kernel.h>
- b; j3 X7 s- B/ F) D! T- N#include <linux/types.h>
% W, {3 W( h/ X! F, N#include <linux/gpio.h>4 T1 r) a# _! ^9 M. @/ J+ J
#include <linux/leds.h>  ^, P+ `5 z; O; \( m3 \
#include <linux/platform_device.h>; \4 S' @$ L3 D: q8 j9 t

9 c3 q* O) V! J: o8 k2 o2 n#include <asm/mach-types.h>+ N- ^. |6 I; J6 H# P2 C
#include <asm/mach/arch.h>
7 H5 n4 x0 p" m+ P#include <mach/da8xx.h>
: P+ r' X, }# W6 b% V; H#include <mach/mux.h>
1 q# S. @( n; J9 k# D( B1 X# B2 W
) T$ z/ h! P1 u' e# V' J#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
0 \) N9 C& H: h1 R& S# F8 x1 ^#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)8 ^/ E* J% {* {% u! i
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)8 a# h  T; N' n7 o( S) [! D" X! l
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
; E( U. V/ `5 U$ Z; K
$ U, e7 Q+ z" e* Z: j% T" C$ Z/* assign the tl som board LED-GPIOs*/! q# c( V9 w* _- \' X
static const short da850_evm_tl_user_led_pins[] = {  u  m4 Z8 y1 Z2 b+ b
        /* These pins are definition at <mach/mux.h> file */
, E2 l( m9 p3 Y8 s/ {        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,% n- W( L/ ]7 a* P& a+ z
        -1
7 O4 V# n5 V5 Q0 y};
  u' O4 _9 ]  I5 d: n, o3 j1 g9 H7 R. e/ z  }
static struct gpio_led da850_evm_tl_leds[] = {, y/ ^/ t- J" W8 i
        {% C8 G/ \/ F: r! ]+ P% L
                .active_low = 0,
8 c, l& F5 t  m, ]& |. K                .gpio = DA850_USER_LED0,
% T7 m3 I1 q, z( A9 t                .name = "user_led0",& T" X5 s- \- O& O, \/ O! E
                .default_trigger = "default-on",
1 g- S0 Y1 U  A* \        },% ]# b& u$ Z8 N( @5 B+ O
        {
4 F' D2 v/ U  x4 R, s6 k6 y: c, }                .active_low = 0,4 A1 |& {! M4 P
                .gpio = DA850_USER_LED1,8 q7 I1 C* r3 E1 F: r7 ]
                .name = "user_led1",0 ^" c" {  F4 }& _- g$ `
                .default_trigger = "default-on",5 D1 i! Y/ B& C3 d
        },
, L# t7 `0 c2 [5 s( L' z        {
8 ^  b4 Z! @' l( q: r4 [* H                .active_low = 0,- @$ g9 V) L+ C' t0 o, L5 i+ }
                .gpio = DA850_USER_LED2,
  F& r3 W& E6 L" r3 [                .name = "user_led2",( d7 R$ x. Y0 }5 `4 S; x7 E; m
                .default_trigger = "default-on",. w8 L1 ^( q; {6 L
        },
" _- f8 ^- ]$ U' M- `6 j- O        {
; e! p9 C% L  h- h& R: C, c4 s" k, p- V                .active_low = 0,
8 a" i: A/ w* I5 i& b                .gpio = DA850_USER_LED3,% `. P/ ^  Q& ^3 T
                .name = "user_led3",/ J2 ^5 F6 e  U9 s4 i
                .default_trigger = "default-on",
2 }8 u( X  }: _# c3 g: W% W* E        },% j- R& S* a, g* w& |
};' y5 a: v; x, s. m
( M  f- }9 L) @
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {3 t, Z+ ~9 o% W- \8 V2 e
        .leds = da850_evm_tl_leds,
+ _4 E, Z% R# h0 Q        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
0 ?5 s6 u( Z: G% j; q/ \};
, g" P$ |8 O" B* ^( x/ |6 ]
: f+ d  y! P- E3 Jstatic void led_dev_release(struct device *dev)
+ w2 i8 g+ M4 X( v% c1 X{
9 \- s( c7 L# u% F};
* @4 M5 K/ ~; S5 `! J1 R& M$ J) p. s8 k
static struct platform_device da850_evm_tl_leds_device = {# F7 [' y) I4 o# q' ?# y
        .name                = "leds-gpio",
- Z$ {. q' h% Q0 x* e: p9 S4 H/ g        .id                = 1,
2 \( ]" Z: m. A4 V5 x        .dev = {! f  _9 W  {" [) m0 A
                .platform_data = &da850_evm_tl_leds_pdata,
* `# ^/ h& u2 w  |2 e7 `' V                .release = led_dev_release,/ v1 p  t" D7 _/ A7 v& M5 p
        }
% S7 I4 q. N& M  k4 o% T/ Z# @0 h6 F};* V- U( ?" W0 [+ k3 P6 D
* m+ H: v0 E; z2 T$ Y
static int __init led_platform_init(void)
) U' t) T6 c+ K{: W8 W; G& N8 }8 E+ d3 f6 `. p; r2 H) r
        int ret;6 [# W' L  u6 Q6 x2 `
#if 0( \$ @+ b, b# [/ Z: l
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);9 D8 E) r6 E; D; S5 J
        if (ret)6 K- Y# {9 b( B2 T7 \) U
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
) `7 [* C: h" T: K/ |                                "%d\n", ret);& A5 C4 m) A8 K1 x7 z
#endif
+ y" A* B! @5 W* c0 k! h        ret = platform_device_register(&da850_evm_tl_leds_device);
9 [6 b! B9 N8 }1 f        if (ret)
8 k: ~3 n* v8 A. f) u; f8 h5 p                pr_warning("Could not register som GPIO expander LEDS");* j: V0 ~  O0 b' W: x( H: C
        else
) v) K) ?+ E" [6 q  i7 R1 j; t                printk(KERN_INFO "LED register sucessful!\n");4 [1 r0 ^2 H8 A( \% j, n

; `0 w. R0 u; d6 u  P' |        return ret;
0 S. M9 ^9 P# v8 [" l6 r2 }$ j}6 L: }4 L2 I( a1 q, V: F: @

* _5 t0 F& Z  A. k- M3 K7 ustatic void __exit led_platform_exit(void)$ q4 D2 w6 c- R; H
{8 |; @5 E! D0 M" T/ l4 S% E
        platform_device_unregister(&da850_evm_tl_leds_device);
8 g) W# n1 m3 q; S, u- ]- y- k2 p; P% S, Q
        printk(KERN_INFO "LED unregister!\n");
# O( H- d& ~, Q}
* p+ H- k2 G$ Q) F# `1 q$ x/ f  B4 S) S7 g
module_init(led_platform_init);
  c( ]0 O, D! ?module_exit(led_platform_exit);' R# y. F7 B5 X7 h+ i# K

  E( i; ]$ u3 o) P9 W0 t4 V- VMODULE_DESCRIPTION("Led platform driver");4 C: q1 G0 x9 S! N0 S8 {
MODULE_AUTHOR("Tronlong");, X6 A/ J. G% T( @) l  L
MODULE_LICENSE("GPL");
6 Q  K! m2 @$ k( u6 q
0 t9 n/ C$ |' t5 N3 I5 ^
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-5-19 20:23 , Processed in 0.046418 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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