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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。5 E; Z- P& B7 k
#include <linux/init.h>
6 g6 E9 M1 @! Q#include <linux/module.h>
+ D  ~" h& ~& ~3 V) Z6 F& Z- X# \#include <linux/kernel.h>2 F5 V- D9 }& s1 s. F
#include <linux/types.h>7 q1 a3 ^* J7 N4 n6 V
#include <linux/gpio.h>
" _' M8 P* f$ a. H' b. P6 ^% Y8 }#include <linux/leds.h>
2 E* |, X" [' L/ e6 ^9 ]  `#include <linux/platform_device.h>( {! a. f) g9 S% t6 q
: J! A: \' v/ S5 T5 h& y
#include <asm/mach-types.h>
0 W$ _9 L$ m: v2 h#include <asm/mach/arch.h>
* c' E1 q: ^4 @  Q4 E7 Z$ ~9 o#include <mach/da8xx.h>& y3 j+ w3 C, K4 [4 ]( L. ]
#include <mach/mux.h>
, x' y" N$ x9 W7 E3 {
4 L3 c/ |( w$ H" P#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)/ H- [2 i' ?4 u% E& K) L
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)& V5 K7 v& w, e& I7 z( R
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
! y" X6 b3 M+ J$ n#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
& ]1 t1 n  W" X0 z
5 U- T* {6 U: p* a& V5 V/* assign the tl som board LED-GPIOs*/
( M( y% D' v/ W& u- t' Astatic const short da850_evm_tl_user_led_pins[] = {0 g! k9 ^& f6 @" d+ O: x6 a
        /* These pins are definition at <mach/mux.h> file */$ J& S# N! D: m8 S% O
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
6 A) p% G8 y" o6 C0 v" Q3 ^        -1
$ J4 G  h+ c, A" s};5 z  ?$ v* C4 e3 l0 f

- o) T" t: l, x" R' {static struct gpio_led da850_evm_tl_leds[] = {0 |: o4 Q5 ^% }/ r. W/ i2 }7 a
        {; u6 a. L  x0 _2 O# A2 `
                .active_low = 0,
) F" R5 u7 l- b4 p$ W  u                .gpio = DA850_USER_LED0,
- L. v9 h( L1 z. r                .name = "user_led0",
& |9 C+ |# @; S                .default_trigger = "default-on",* t/ N% T8 Z7 |+ ~
        },; w( n. Z5 `; E- c
        {
5 z; G5 W" m3 R' S. R, H+ `, d                .active_low = 0,8 s4 G, B; y5 a  u& B+ v% G
                .gpio = DA850_USER_LED1,
: F* |: Y7 J: N) D% a                .name = "user_led1",
9 ~3 Q0 e4 H# \& K  [$ ^  ~! i                .default_trigger = "default-on",& ]* S) L6 b& ?2 |: A2 Z! c0 X
        },! O3 k3 {7 T$ C8 m
        {; d4 P3 S7 q" ]+ I
                .active_low = 0,1 b( I# h& n$ X  H, n& Z& E' e
                .gpio = DA850_USER_LED2,
; M8 V* L6 H. Y                .name = "user_led2",' L" R6 }* e! }+ z0 Z5 ^5 s
                .default_trigger = "default-on",' A0 _6 |. d! c2 F; w* {; ]
        },/ K0 h& M- u* F/ v" }7 l0 Q0 L
        {
0 e/ }4 L" K$ g  \                .active_low = 0,
! F' s+ a2 v  J/ j: f                .gpio = DA850_USER_LED3,6 d- l! c) G% W% f" m. @
                .name = "user_led3",+ H- v8 X- A" l3 Y8 t7 h. S
                .default_trigger = "default-on",% E5 M  n& o9 S- Q4 _% |. p
        },
  [1 y' ]8 Q5 L2 v" |2 C};% X' T3 R& B% Z( v2 T! p
6 H$ M2 Z3 x7 p; C7 r2 b
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
/ {. D  i1 h- a1 O& D" Z8 b. A        .leds = da850_evm_tl_leds,
% k/ E2 g4 ~% m5 b        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),% I! U: S4 }- N9 w
};! w3 F& A; \. q2 b% L7 ?

+ T5 n, b% ^6 h: z, ?static void led_dev_release(struct device *dev)% }4 T( B! S4 e: A* ?" n7 P% X
{. n! s" F7 f' U/ m4 O* [
};0 g8 X1 f- B$ y& T

( Q/ M: b2 J; Bstatic struct platform_device da850_evm_tl_leds_device = {; O! G& h( R0 Q3 ~% B0 B
        .name                = "leds-gpio",
3 O  [) y$ i3 N% a3 _' n        .id                = 1,5 }% l7 K2 G& q, w# {0 N6 v9 T
        .dev = {4 y3 p+ E5 }2 h' }# f) g5 i. ^
                .platform_data = &da850_evm_tl_leds_pdata,
; n5 c' |% v/ L0 B                .release = led_dev_release,
8 m7 @( s/ `0 l9 ^- c        }
0 }, x' U. {! }2 X  |( l( V};* F: k9 q0 N' V" D/ l- y2 n

  W# G# v7 W" Bstatic int __init led_platform_init(void)1 U% q7 M$ V4 R5 C2 e/ p
{! p( P) o3 M: Z4 L4 Q0 K7 \
        int ret;
8 p. v& h, X4 H7 r+ ], A+ V9 S3 D#if 0
& K) J9 i7 n5 f1 E0 U$ g) Y* G$ b0 Y! d        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);: C$ q3 x- F4 h* X; [: j0 T
        if (ret)
8 A% M. _6 u4 q9 I/ o                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"& g6 b% E' p3 w
                                "%d\n", ret);
( e5 O$ ]4 e9 O! c1 {#endif3 J7 `4 A. N' U; o8 |. {# z
        ret = platform_device_register(&da850_evm_tl_leds_device);
. c) I; {  {) R        if (ret)
9 K+ n& [/ x. _9 t                pr_warning("Could not register som GPIO expander LEDS");- e' K4 \* s2 L" p% @2 z
        else# d0 p% o& ?; D5 O$ l3 f1 w5 T
                printk(KERN_INFO "LED register sucessful!\n");# ?) b0 _" i% x, J- X1 K- ]2 k

6 B; Q% ~) @2 T9 v' O9 f        return ret;1 }+ E" }# _( U
}, a8 h: X- ?) I- v) w2 O

$ v* Q0 a9 L) K. J6 F4 ystatic void __exit led_platform_exit(void)6 L0 r' X+ w9 T9 \5 R
{
, W; [( w' w: J8 n" Y+ {        platform_device_unregister(&da850_evm_tl_leds_device);
0 @, b& e2 _7 K! s' t3 g+ K: @) h- R: {% F
        printk(KERN_INFO "LED unregister!\n");; w$ T3 ]; {& \  Y0 ?# O
}
/ \1 S5 c) B( O
* _% E5 ]: h% P+ ?% qmodule_init(led_platform_init);
, P  P; @8 J" f* ~module_exit(led_platform_exit);
4 ]0 u% y( t0 r9 f6 R
! g6 F/ S& p- P0 QMODULE_DESCRIPTION("Led platform driver");
0 ?8 h) @+ y% Z8 l7 ]* JMODULE_AUTHOR("Tronlong");
$ B1 L1 p" {, G+ p, |MODULE_LICENSE("GPL");; B8 O! ~! W" A4 F/ t

* I6 ?3 j- x- ?/ h
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-23 00:15 , Processed in 0.039421 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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