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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。0 o5 r4 x) t1 Q; R! h* D* L
#include <linux/init.h>) z& H, y3 ]" ~* f: ^( T# Z3 p( _' e
#include <linux/module.h>
) L# F5 O( P: Y: M2 L- ]$ N3 v  h7 F#include <linux/kernel.h>
7 D/ M9 m: q9 u) X: u& B#include <linux/types.h>
' F$ L+ K* b5 W' \1 t#include <linux/gpio.h>0 X4 d$ S3 M; h9 Q; d, ^* [0 q0 n
#include <linux/leds.h>9 f% D" d4 L4 x4 \' e( P$ Y5 _
#include <linux/platform_device.h>
8 p5 e$ ^8 r: I$ D# T/ i' O; q, k3 s! j0 D8 l! u
#include <asm/mach-types.h>6 L/ `( s# d5 j# `* t
#include <asm/mach/arch.h>  q/ q2 {* l% c) Z1 K0 v) }8 M3 |
#include <mach/da8xx.h>5 v' ^3 K' O9 k6 p; p# l7 S
#include <mach/mux.h>
- A4 k! ^6 }  R: N( s  y
3 V4 p* H: `8 D5 D#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)- f8 w7 G6 g; V
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)( ?# k. o2 o" ]# ]* ?# P
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1); U! X0 w' `6 k+ E  R' {. f
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)/ N8 y% U9 D, E) \
( ]2 `% m: D( H1 p* a" s
/* assign the tl som board LED-GPIOs*/
( g1 [# d) O5 Z: W5 n* f) @static const short da850_evm_tl_user_led_pins[] = {
  |% U6 M' t5 Y% R  l        /* These pins are definition at <mach/mux.h> file */
: f" G6 ?' s  V4 B( D' v        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,( r% J1 @3 V9 P% Y# g* }) c
        -1/ X- o: E; k* U5 P, b( r3 K
};  m0 O  K8 a# x
) B2 e+ W7 I5 W& q0 w) ?
static struct gpio_led da850_evm_tl_leds[] = {5 ?% p; @( v* z) \& v. g9 S5 H9 g
        {( L9 B2 G+ E  T
                .active_low = 0,+ Z8 Q" c% W7 t; X! ~
                .gpio = DA850_USER_LED0,/ H, N! T1 x+ X8 w% E
                .name = "user_led0",
2 c9 ^3 u. p# [) \! \7 `3 d. |! Z2 f                .default_trigger = "default-on",
7 k% x7 o' R0 I) |% r) s3 X        },% W1 G+ u! E# i+ Q
        {
3 h: O, e2 s- F5 I                .active_low = 0,
; K) w8 a5 m, p" r2 }0 h                .gpio = DA850_USER_LED1,1 W$ Y2 i2 P% `, k& i1 j
                .name = "user_led1",
2 J. V2 I  x2 h: c7 e8 Q                .default_trigger = "default-on",
7 M# l2 b7 L, N- {2 V# C& v3 ~4 R        },, H# K& W7 Z- k1 q1 {+ W3 t
        {
; n* O+ s( w. P) C0 _- X' B9 H                .active_low = 0,( M1 A8 T, d# f/ u; k
                .gpio = DA850_USER_LED2,
( \- H- b9 e# b) ?- {                .name = "user_led2",# U. g0 \' M3 J7 _  u0 z1 \
                .default_trigger = "default-on",, N8 u4 V0 [1 P; A/ b. W
        },
9 g% |6 I# K) p) O3 g. j0 z1 I) Y& {& V        {0 g" s) j+ p6 \" l! v0 R! b) J7 D
                .active_low = 0,
3 x  }2 y) O1 h+ ^! z) N                .gpio = DA850_USER_LED3,9 m" O% p; W# ^/ L8 C- a2 Q' Y, a, K
                .name = "user_led3",1 r8 Q$ Q1 R# ~3 E% e7 m& L
                .default_trigger = "default-on",6 ^( K7 `  _- m
        },
! y6 T5 Z' [! m/ B};
3 ~! m9 o. y7 ]7 v
' X! A% G& ]3 _- z5 H  J3 U) y; xstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {- D! O3 ^2 `, c8 |5 A7 B
        .leds = da850_evm_tl_leds,
  ~& k+ M# f( _6 D) P        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
! {' ?  v$ a; }1 g8 ]* T};8 N' L( g6 g, W$ h
4 Z( I6 @# |$ J# w" k- F* @! q3 \' J
static void led_dev_release(struct device *dev)5 U: C8 a6 H3 [: Z( ^* x
{5 L8 B" F' k3 u% |% ?# q6 v
};+ J- W2 P) M: ~

( i* h2 c( X$ Q5 n# D- N! X0 astatic struct platform_device da850_evm_tl_leds_device = {
0 t, ~+ ?) V2 \# s1 N        .name                = "leds-gpio",
7 S; a! A) P4 x        .id                = 1,
+ U8 O0 F, U+ E3 |( u& H% j! s        .dev = {
, X4 Y! X* n- R. K7 K                .platform_data = &da850_evm_tl_leds_pdata,9 B4 R; Z: G  T
                .release = led_dev_release,
" C5 E* x; I3 C        }
, D3 T& H  e! B1 |};
. _! U2 A/ c# R4 D  [( p2 a6 y3 [# q1 [
static int __init led_platform_init(void)
: `; U: b5 x0 ^$ H- b& P{) b9 C8 i8 c. B& }9 k8 A$ }
        int ret;
! p/ w0 i" o4 Y6 z#if 00 [' A0 f2 V* L3 {/ t  }
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
8 {' D8 ^$ p' N0 G) ]7 I6 V        if (ret)- e2 R) d3 I; T; `" S% K
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"1 N1 i- V" A1 Y1 B) n" {
                                "%d\n", ret);( h+ y2 F/ g* `4 ?8 o9 p
#endif1 i& u, _% S+ k5 @7 X
        ret = platform_device_register(&da850_evm_tl_leds_device);" A; N+ o, [% Q0 T1 e: Y
        if (ret): Q# n2 J9 k8 W, o8 b
                pr_warning("Could not register som GPIO expander LEDS");# |3 {  N/ \; s7 C
        else$ A; O% B0 i) [7 I$ H: `" X
                printk(KERN_INFO "LED register sucessful!\n");
9 _, ~$ S5 q+ \3 ?4 h
9 |, q/ H0 q; h( m( b        return ret;: [- [8 F! R8 F; b, G( P
}
6 ~/ t% p" N, \5 b0 r' y* _; K" P
static void __exit led_platform_exit(void)
* Y# c0 U! a8 @1 _" M{# w2 x, q& [+ L4 k3 L
        platform_device_unregister(&da850_evm_tl_leds_device);
8 V# [' Z7 s! M6 v  C6 b
/ I; V/ Q9 u" t6 i8 i( \( l        printk(KERN_INFO "LED unregister!\n");
! ~' V$ J! Y1 F) A3 F) O* T, Y}2 L/ c: x* V2 s% F5 J) ~" C+ \! y

  x1 s. T3 n1 r8 wmodule_init(led_platform_init);
- R3 e- g0 \* e( t8 n( G9 omodule_exit(led_platform_exit);! i: t& ?! n# p% w" r" Z2 h
8 j; c2 P( j; M1 A- L. j
MODULE_DESCRIPTION("Led platform driver");
3 g2 X! e+ V" {0 {MODULE_AUTHOR("Tronlong");
- i  L( D# e4 S! i- W0 z4 y1 P4 uMODULE_LICENSE("GPL");
! [- e; M" T0 }) y( H) b, y' m8 |' `
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-3 21:52 , Processed in 0.041153 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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